| 103 | | def test_connection_timeout(self): |
|---|
| 104 | | 'connection timeout' |
|---|
| | 105 | @inject_dependency('stderr', wanderer.sys) |
|---|
| | 106 | @inject_dependency('exit', wanderer.sys) |
|---|
| | 107 | def test_glitch(self): |
|---|
| | 108 | 'connection glitch' |
|---|
| | 109 | def raise_exception(url, orig_function = wanderer.urllib2.urlopen): |
|---|
| | 110 | orig_function(url) |
|---|
| | 111 | raise wanderer.urllib2.URLError('simulated glitch') |
|---|
| | 112 | wanderer.urllib2.URLError = urllib2.URLError |
|---|
| | 113 | wanderer.urllib2.urlopen = raise_exception |
|---|
| | 118 | should_call_with_param( |
|---|
| | 119 | wanderer.sys.stderr, 'write', 0, |
|---|
| | 120 | lambda p: p.startswith('Failed to open "%s": simulated glitch' |
|---|
| | 121 | % url), |
|---|
| | 122 | 'Wrong error message: %s' |
|---|
| | 123 | ) |
|---|
| | 124 | should_call_with_param(wanderer.sys.exit, '__call__', 0, |
|---|
| | 125 | lambda p: p == 3, 'Wrong exit code: %s') |
|---|
| | 126 | |
|---|
| | 127 | @inject_dependency('urllib2', wanderer) |
|---|
| | 128 | def test_ok(self): |
|---|
| | 129 | 'page downloads ok' |
|---|
| | 130 | url = 'http://some.server/page' |
|---|
| | 131 | page_content = 'page content' |
|---|
| | 132 | wanderer.urllib2.mockAddReturnValues(urlopen = StringIO.StringIO( |
|---|
| | 133 | page_content)) |
|---|
| | 134 | page = wanderer.load_page(url) |
|---|
| | 135 | should_call_with_param(wanderer.urllib2, 'urlopen', 0, |
|---|
| | 136 | lambda p: p == url, 'Wrong url opened: %s') |
|---|
| | 137 | assert page == page_content, 'Wrong page content returned: %s' % page |
|---|
| | 138 | |
|---|
| | 139 | @inject_dependency('urllib2', wanderer) |
|---|
| | 140 | def test_twill_log(self): |
|---|
| | 141 | 'should log twill commands' |
|---|