forked from atom/language-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlanguage-python-spec.coffee
More file actions
81 lines (70 loc) · 4.77 KB
/
language-python-spec.coffee
File metadata and controls
81 lines (70 loc) · 4.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
describe 'Python settings', ->
[editor, languageMode] = []
afterEach ->
editor.destroy()
beforeEach ->
waitsForPromise ->
atom.workspace.open().then (o) ->
editor = o
languageMode = editor.languageMode
waitsForPromise ->
atom.packages.activatePackage('language-python')
it 'matches lines correctly using the increaseIndentPattern', ->
increaseIndentRegex = languageMode.increaseIndentRegexForScopeDescriptor(['source.python'])
expect(increaseIndentRegex.testSync('for i in range(n):')).toBeTruthy()
expect(increaseIndentRegex.testSync(' for i in range(n):')).toBeTruthy()
expect(increaseIndentRegex.testSync('async for i in range(n):')).toBeTruthy()
expect(increaseIndentRegex.testSync(' async for i in range(n):')).toBeTruthy()
expect(increaseIndentRegex.testSync('class TheClass(Object):')).toBeTruthy()
expect(increaseIndentRegex.testSync(' class TheClass(Object):')).toBeTruthy()
expect(increaseIndentRegex.testSync('def f(x):')).toBeTruthy()
expect(increaseIndentRegex.testSync(' def f(x):')).toBeTruthy()
expect(increaseIndentRegex.testSync('async def f(x):')).toBeTruthy()
expect(increaseIndentRegex.testSync(' async def f(x):')).toBeTruthy()
expect(increaseIndentRegex.testSync('if this_var == that_var:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' if this_var == that_var:')).toBeTruthy()
expect(increaseIndentRegex.testSync('elif this_var == that_var:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' elif this_var == that_var:')).toBeTruthy()
expect(increaseIndentRegex.testSync('else:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' else:')).toBeTruthy()
expect(increaseIndentRegex.testSync('except Exception:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' except Exception:')).toBeTruthy()
expect(increaseIndentRegex.testSync('except Exception as e:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' except Exception as e:')).toBeTruthy()
expect(increaseIndentRegex.testSync('finally:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' finally:')).toBeTruthy()
expect(increaseIndentRegex.testSync('with open("filename") as f:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' with open("filename") as f:')).toBeTruthy()
expect(increaseIndentRegex.testSync('async with open("filename") as f:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' async with open("filename") as f:')).toBeTruthy()
expect(increaseIndentRegex.testSync('while True:')).toBeTruthy()
expect(increaseIndentRegex.testSync(' while True:')).toBeTruthy()
expect(increaseIndentRegex.testSync('\t\t while True:')).toBeTruthy()
it 'does not match lines incorrectly using the increaseIndentPattern', ->
increaseIndentRegex = languageMode.increaseIndentRegexForScopeDescriptor(['source.python'])
expect(increaseIndentRegex.testSync('for i in range(n)')).toBeFalsy()
expect(increaseIndentRegex.testSync('class TheClass(Object)')).toBeFalsy()
expect(increaseIndentRegex.testSync('def f(x)')).toBeFalsy()
expect(increaseIndentRegex.testSync('if this_var == that_var')).toBeFalsy()
expect(increaseIndentRegex.testSync('"for i in range(n):"')).toBeFalsy()
it 'matches lines correctly using the decreaseIndentPattern', ->
decreaseIndentRegex = languageMode.decreaseIndentRegexForScopeDescriptor(['source.python'])
expect(decreaseIndentRegex.testSync('elif this_var == that_var:')).toBeTruthy()
expect(decreaseIndentRegex.testSync(' elif this_var == that_var:')).toBeTruthy()
expect(decreaseIndentRegex.testSync('else:')).toBeTruthy()
expect(decreaseIndentRegex.testSync(' else:')).toBeTruthy()
expect(decreaseIndentRegex.testSync('except Exception:')).toBeTruthy()
expect(decreaseIndentRegex.testSync(' except Exception:')).toBeTruthy()
expect(decreaseIndentRegex.testSync('except Exception as e:')).toBeTruthy()
expect(decreaseIndentRegex.testSync(' except Exception as e:')).toBeTruthy()
expect(decreaseIndentRegex.testSync('finally:')).toBeTruthy()
expect(decreaseIndentRegex.testSync(' finally:')).toBeTruthy()
expect(decreaseIndentRegex.testSync('\t\t finally:')).toBeTruthy()
it 'does not match lines incorrectly using the decreaseIndentPattern', ->
decreaseIndentRegex = languageMode.decreaseIndentRegexForScopeDescriptor(['source.python'])
# NOTE! This first one is different from most other rote tests here.
expect(decreaseIndentRegex.testSync('else: expression()')).toBeFalsy()
expect(decreaseIndentRegex.testSync('elif this_var == that_var')).toBeFalsy()
expect(decreaseIndentRegex.testSync(' elif this_var == that_var')).toBeFalsy()
expect(decreaseIndentRegex.testSync('else')).toBeFalsy()
expect(decreaseIndentRegex.testSync(' "finally:"')).toBeFalsy()