def test_post_raises_on_404(self): # When posting, a 404 is converted to a BugTrackerConnectError. base_url = "http://example.com/" bugtracker = ExternalBugTracker(base_url) def raise404(request, data, timeout=None): raise urllib2.HTTPError('url', 404, 'Not Found', None, None) with monkey_patch(urllib2, urlopen=raise404): self.assertRaises( BugTrackerConnectError, bugtracker._post, 'some-url', {'post-data': 'here'})
def test_disconnect_with_error(self): session = self.session_factory() session.connect() old_close = session._connection.close def new_close(*args, **kwargs): old_close(*args, **kwargs) raise socket.error with monkey_patch(session._connection, close=new_close): session.disconnect() self.assertFalse(session.is_connected)
def test_csv_data_on_post_404(self): # If the 'view_all_set.php' request raises a 404, then the csv_data # attribute is None. base_url = "http://example.com/" fail_404 = urllib2.HTTPError('url', 404, 'Not Found', None, None) with monkey_patch(Mantis, urlopen=FakeMethod(failure=fail_404)): bugtracker = Mantis(base_url) self.assertThat(bugtracker.csv_data, Is(None))
def test_post_raises_on_404(self): # When posting, a 404 is converted to a BugTrackerConnectError. base_url = "http://example.com/" bugtracker = ExternalBugTracker(base_url) def raise404(request, data, timeout=None): raise urllib2.HTTPError('url', 404, 'Not Found', None, None) with monkey_patch(urllib2, urlopen=raise404): self.assertRaises(BugTrackerConnectError, bugtracker._post, 'some-url', {'post-data': 'here'})
def test_post_sends_host(self): # When posting, a Host header is sent. base_host = 'example.com' base_url = 'http://%s/' % base_host bugtracker = ExternalBugTracker(base_url) def assert_headers(request, data, timeout=None): self.assertContentEqual( [('User-agent', LP_USER_AGENT), ('Host', base_host)], request.header_items()) with monkey_patch(urllib2, urlopen=assert_headers): bugtracker._post('some-url', {'post-data': 'here'})
def test_post_sends_host(self): # When posting, a Host header is sent. base_host = 'example.com' base_url = 'http://%s/' % base_host bugtracker = ExternalBugTracker(base_url) def assert_headers(request, data, timeout=None): self.assertContentEqual([('User-agent', LP_USER_AGENT), ('Host', base_host)], request.header_items()) with monkey_patch(urllib2, urlopen=assert_headers): bugtracker._post('some-url', {'post-data': 'here'})
def test_shortcircuit(self): # Oneloop will exit early if the runner is stopping. class State: def __init__(self): self.checked = None shortcircut = State() def fake_called(): shortcircut.checked = False def fake_stop(): shortcircut.checked = True self.runner.stop() with monkey_patch(self.runner, _check_list_actions=fake_stop, _get_subscriptions=fake_called): self.runner._oneloop() self.assertTrue(self.runner._shortcircuit()) self.assertTrue(shortcircut.checked)
def test_getDiffTimeout(self): # The time permitted to get the diff from the librarian may be None, # or 2. If there is not 2 seconds left in the request, the number will # will 0.01 smaller or the actual remaining time. content = ''.join(unified_diff('', "1234567890" * 10)) diff = self._create_diff(content) value = None def fake(): return value from lp.code.model import diff as diff_module with monkey_patch(diff_module, get_request_remaining_seconds=fake): self.assertIs( LIBRARIAN_SERVER_DEFAULT_TIMEOUT, diff._getDiffTimeout()) value = 3.1 self.assertEqual(2.0, diff._getDiffTimeout()) value = 1.11 self.assertEqual(1.1, diff._getDiffTimeout()) value = 0.11 self.assertEqual(0.1, diff._getDiffTimeout()) value = 0.01 self.assertEqual(0.01, diff._getDiffTimeout())