Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
...
def test_running(self):
class Application(AbstractApplication):
pass
scenario = '''
>>> a = 4
--- running
>>> b = 5
--- running
'''
scenario_tester = ScenarioTester(Application)
scenario_tester.parse(scenario)
lines = scenario_tester.lines
assert len(lines) == 4
self.assert_line(lines, 1, Input, 'a = 4')
self.assert_line(lines, 2, Meta, 'running')
self.assert_line(lines, 3, Input, 'b = 5')
self.assert_line(lines, 4, Meta, 'running')
# this should not trigger any asserts
scenario_tester.test(scenario)
def test_running_fail(self):
class Application(AbstractApplication):
def interpret(self, input):
if input == 'quit':
raise SystemExit
scenario = '''
>>> a = 4
--- running
>>> quit
--- running
'''
scenario_tester = ScenarioTester(Application)
scenario_tester.parse(scenario)
lines = scenario_tester.lines
assert len(lines) == 4
self.assert_line(lines, 1, Input, 'a = 4')
self.assert_line(lines, 2, Meta, 'running')
self.assert_line(lines, 3, Input, 'quit')
self.assert_line(lines, 4, Meta, 'running')
raises(NotRunningError, scenario_tester.test, scenario)
def test_not_running(self):
class Application(AbstractApplication):
def interpret(self, input):
if input == 'quit':
raise SystemExit
scenario = '''
>>> quit
--- not running
'''
scenario_tester = ScenarioTester(Application)
scenario_tester.parse(scenario)
lines = scenario_tester.lines
assert len(lines) == 2
self.assert_line(lines, 1, Input, 'quit')
self.assert_line(lines, 2, Meta, 'not running')
# this should not trigger any asserts
scenario_tester.test(scenario)
def test_not_running_fail(self):
class Application(AbstractApplication):
pass
scenario = '''
>>> a = 5
--- not running
'''
scenario_tester = ScenarioTester(Application)
scenario_tester.parse(scenario)
lines = scenario_tester.lines
assert len(lines) == 2
self.assert_line(lines, 1, Input, 'a = 5')
self.assert_line(lines, 2, Meta, 'not running')
raises(RunningError, scenario_tester.test, scenario)
def test_restart(self):
class Application(AbstractApplication):
def interpret(self, input):
if input == 'quit':
raise SystemExit
scenario = '''
>>> quit
--- not running
--- restart
--- running
--- restart
--- running
'''
scenario_tester = ScenarioTester(Application)
scenario_tester.parse(scenario)
lines = scenario_tester.lines
assert len(lines) == 6
self.assert_line(lines, 1, Input, 'quit')
self.assert_line(lines, 2, Meta, 'not running')
self.assert_line(lines, 3, Meta, 'restart')
self.assert_line(lines, 4, Meta, 'running')
self.assert_line(lines, 5, Meta, 'restart')
self.assert_line(lines, 6, Meta, 'running')
# this should not trigger any asserts
scenario_tester.test(scenario)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment