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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
import sys, os
import twilltestlib
from twill import commands
from twill import namespaces
from twill.errors import TwillAssertionError, TwillNameError
import twill.parse
from cStringIO import StringIO
def setup_module():
global _save_print
_save_print = twill.parse._print_commands
twill.parse.debug_print_commands(True)
def test():
url = twilltestlib.get_url()
# capture output
fp = StringIO()
twill.set_output(fp)
twill.parse.execute_string('code 200', initial_url=url)
# from file
twilltestlib.execute_twill_script('test-go.twill', initial_url=url)
twill.set_output(None)
assert fp.getvalue()
###
# from stdin
filename = os.path.join(twilltestlib.testdir, 'test-go.twill')
old_in, sys.stdin = sys.stdin, open(filename)
try:
twilltestlib.execute_twill_script('-', initial_url=url)
finally:
sys.stdin = old_in
# from parse.execute_file
twill.parse.execute_file('test-go-exit.twill', initial_url=url)
# also test some failures.
old_err, sys.stderr = sys.stderr, StringIO()
try:
twill.set_errout(sys.stderr)
#
# failed assert in a script
#
try:
twill.parse.execute_file('test-go-fail.twill', initial_url=url)
assert 0
except TwillAssertionError:
pass
commands.go(url)
try:
commands.code(400)
assert 0
except TwillAssertionError:
pass
#
# no such command (NameError)
#
try:
twill.parse.execute_file('test-go-fail2.twill', initial_url=url)
assert 0
except TwillNameError, e:
pass
finally:
sys.stderr = old_err
namespaces.new_local_dict()
gd, ld = namespaces.get_twill_glocals()
commands.go(url)
try:
twill.parse.execute_command('url', ('not this',), gd, ld, "anony")
assert 0, "shouldn't get here"
except TwillAssertionError:
pass
try:
commands.follow('no such link')
assert 0, "shouldn't get here"
except TwillAssertionError:
pass
try:
commands.find('no such link')
assert 0, "shouldn't get here"
except TwillAssertionError:
pass
try:
commands.notfind('Hello')
assert 0, "shouldn't get here"
except TwillAssertionError:
pass
try:
twill.parse.execute_command('exit', ('0',), gd, ld, "anony")
assert 0, "shouldn't get here"
except SystemExit:
pass
def teardown_module():
twill.parse.debug_print_commands(_save_print)
|