From 619df273ad90058d9ff4918d8a50a2ba6e2e26df Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Fri, 16 Sep 2016 14:55:10 +0100 Subject: [PATCH] Test another /tokens/discharge response case --- snapcraft/tests/fake_servers.py | 8 ++++++++ snapcraft/tests/store/test_store_client.py | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/snapcraft/tests/fake_servers.py b/snapcraft/tests/fake_servers.py index b693132598..004d9d061a 100644 --- a/snapcraft/tests/fake_servers.py +++ b/snapcraft/tests/fake_servers.py @@ -218,6 +218,8 @@ def _handle_tokens_discharge_request(self): self._send_tokens_discharge(data) elif data['password'] == 'test requires 2fa': self._send_twofactor_required_error() + elif data['password'] == 'test 401 invalid json': + self._send_401_invalid_json() else: self._send_invalid_credentials_error() @@ -243,6 +245,12 @@ def _send_twofactor_required_error(self): } self.wfile.write(json.dumps(response).encode()) + def _send_401_invalid_json(self): + self.send_response(401) + self.send_header('Content-Type', 'application/json') + self.end_headers() + self.wfile.write(b'invalid{json') + def _send_invalid_credentials_error(self): self.send_response(401) self.send_header('Content-Type', 'application/json') diff --git a/snapcraft/tests/store/test_store_client.py b/snapcraft/tests/store/test_store_client.py index 2c4c61243d..57ba378f0b 100644 --- a/snapcraft/tests/store/test_store_client.py +++ b/snapcraft/tests/store/test_store_client.py @@ -76,6 +76,12 @@ def test_failed_login_with_wrong_one_time_password(self): self.assertTrue(config.Config().is_empty()) + def test_failed_login_with_invalid_json(self): + with self.assertRaises(errors.StoreAuthenticationError): + self.client.login('dummy email', 'test 401 invalid json') + + self.assertTrue(config.Config().is_empty()) + class DownloadTestCase(tests.TestCase):