Permalink
Browse files

Merge pull request #41 from fgeller/adapt-to-changes-in-fgallinas-pyt…

…hon-el

Adapt to changes in fgallinas python el
  • Loading branch information...
2 parents 5dd4473 + e643a26 commit a18211200421a11443f357a4ea9ee48d0d58135e @magnars magnars committed Aug 8, 2012
View
@@ -4,3 +4,6 @@
[submodule "util/espuds"]
path = util/espuds
url = git://github.com/rejeep/espuds.git
+[submodule "features/support/vendor/python-el"]
+ path = features/support/vendor/python-el
+ url = git://github.com/fgallina/python.el.git
@@ -0,0 +1,230 @@
+Feature: fgallinas python.el expansions
+ In order to quickly and precisely mark Python code blocks
+ As an Emacs user
+ I want to expand to them
+
+ Scenario: Baseline feature test.
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert "run(23)"
+ And I place the cursor between "n" and "("
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be "run(23)"
+
+ Scenario: Mark region inside a string.
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert "'X-Men: Wolverine'"
+ And I place the cursor between "r" and "i"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be "X-Men: Wolverine"
+
+ Scenario: Mark region inside a string with escape delimiter.
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert "'pre' + 'X-Men: Wol\'verine' + 'post'"
+ And I place the cursor between "r" and "i"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be "X-Men: Wol\'verine"
+
+ Scenario: Mark region outside a string.
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert "run('X-Men: ' + 'Wolverine')"
+ And I place the cursor between "M" and "e"
+ And I press "C-@"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be "'X-Men: '"
+
+ Scenario: Mark region inside a multi-line string.
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ print('lalelu')
+
+ '''This is a multi-line Python string
+ with lots of useless content.
+ '''
+
+ print('lalelu')
+ """
+ And I place the cursor between "-" and "l"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be:
+ """
+ This is a multi-line Python string
+ with lots of useless content.
+
+ """
+
+ Scenario: Mark region outside a multi-line string.
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ '''This is a multi-line Python string
+ with lots of useless content.
+ '''
+ """
+ And I place the cursor between "-" and "l"
+ And I press "C-@"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be:
+ """
+ '''This is a multi-line Python string
+ with lots of useless content.
+ '''
+ """
+
+ Scenario: Mark a basic Python block
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ if True:
+ print('To be, or not to be...')
+ else:
+ print('Booyah.')
+ """
+ And I go to point "1"
+ And I press "C-@"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be:
+ """
+ if True:
+ print('To be, or not to be...')
+ """
+
+ Scenario: Mark a Python block with a nested block
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ if True:
+ if True:
+ print(23)
+ print('To be, or not to be...')
+ else:
+ print('Booyah.')
+ """
+ And I go to point "1"
+ And I press "C-@"
+ Then the region should be:
+ """
+ if
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ if True:
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ if True:
+ if True:
+ print(23)
+ print('To be, or not to be...')
+ """
+
+ Scenario: Mark another Python block with a nested block
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ def moo(data):
+ for foo in data.items():
+ print(foo)
+
+ """
+ And I go to point "1"
+ And I press "C-@"
+ And I press "C-@"
+ And I press "C-@"
+ Then the region should be:
+ """
+ def moo(data):
+ for foo in data.items():
+ print(foo)
+ """
+
+ Scenario: Mark an outer Python block
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ print('More stuff')
+
+ def the_truth():
+ if True:
+ print('To be, or not to be...')
+ else:
+ print('Booyah.')
+
+ print('Even more stuff.')
+ """
+ And I go to point "42"
+ And I press "C-@"
+ Then the region should be:
+ """
+ if
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ if True:
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ if True:
+ print('To be, or not to be...')
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ def the_truth():
+ if True:
+ print('To be, or not to be...')
+ else:
+ print('Booyah.')
+ """
+
+ Scenario: Mark nested Python block with subsequent statements in outer block
+ Given I turn on python-mode
+ And there is no region selected
+ When I insert:
+ """
+ def outer_foo():
+
+ def inner_foo():
+ return 23
+
+ return inner_foo()
+
+ """
+ And I go to point "23"
+ And I press "C-@"
+ Then the region should be:
+ """
+ def
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ def inner_foo():
+ """
+ And I press "C-@"
+ Then the region should be:
+ """
+ def inner_foo():
+ return 23
+ """
View
@@ -6,6 +6,7 @@
(add-to-list 'load-path expand-region-root-path)
(add-to-list 'load-path (expand-file-name "espuds" expand-region-util-path))
+(add-to-list 'load-path (expand-file-name "features/support/vendor/python-el" expand-region-root-path))
(require 'expand-region)
(require 'espuds)
Submodule python-el added at fcd5ed
Oops, something went wrong.

0 comments on commit a182112

Please sign in to comment.