def setUp(self): self.mb = MountebankProcess() api_client = ApiClient() self.broker = UserBroker(api_client)
class TestUserBroker(unittest.TestCase): def setUp(self): self.mb = MountebankProcess() api_client = ApiClient() self.broker = UserBroker(api_client) def tearDown(self): self.mb.destroy_all_imposters() def test_create_new_user_with_invalid_data(self): with self.assertRaises(AssertionError): self.broker.create_user(user_one) def test_create_new_user_with_valid_data(self): self.setup_imposter('create_new_user.json') user = self.broker.create_user(user_two) self.assertIsNotNone(user) self.assertEqual(user['id'], '00002') self.assertEqual(user['login'], user_two.get('login')) self.assertEqual(user['mobile_phone'], user_two.get('mobile_phone')) def test_create_user_with_differing_login_email(self): self.setup_imposter('create_new_user.json') user = self.broker.create_user(user_seven) self.assertIsNotNone(user) self.assertEqual(user['id'], '00002') self.assertEqual(user_seven['login'], user['login']) self.assertEqual(user_seven['email'], user['email']) def test_update_existing_user_with_id(self): self.setup_imposter('update_existing_user.json') user = self.broker.update_user_phone_number(user_three['id'], user_three['mobile_phone']) self.assertIsNotNone(user) self.assertEqual(user['id'], user_three.get('id')) self.assertEqual(user['login'], user_three.get('login')) self.assertEqual(user['mobile_phone'], user_three.get('mobile_phone')) def test_update_existing_user_without_id_or_phone(self): with self.assertRaises(AssertionError): self.broker.update_user_phone_number(user_two['id'], user_two['mobile_phone']) with self.assertRaises(AssertionError): self.broker.update_user_phone_number(user_three['id'], None) def test_get_user_method(self): self.setup_imposter('update_existing_user.json') user = self.broker.get_user(user_four.get('login')) self.assertEqual(user['login'], user_four.get('login')) self.assertIn('factors', user) self.assertEqual(len(user['factors']), 1) self.assertEqual(user['factors'][0]['phone_number'], user_four['mobile_phone']) def test_get_user_fail(self): self.setup_imposter('update_existing_user.json') self.assertIsNone(self.broker.get_user(user_five.get('login'))) def test_get_user_factors_fail(self): self.setup_imposter('update_existing_user.json') self.assertIsNone(self.broker.get_user(user_six.get('login'))) def test_get_user_id_method(self): self.setup_imposter('update_existing_user.json') user_id = self.broker.get_user_id(user_four.get('login')) self.assertEqual(user_id, '00003') def setup_imposter(self, file_name): file_path = 'test_user_broker/stubs/' + file_name imposter = self.mb.create_imposter(file_path) self.broker._api_client = ApiClient(BASE_URL=self.mb.get_imposter_url(imposter), API_TOKEN='1')
class TestUserBroker(unittest.TestCase): def setUp(self): self.mb = MountebankProcess() api_client = ApiClient() self.broker = UserBroker(api_client) def tearDown(self): self.mb.destroy_all_imposters() def test_create_new_user_with_invalid_data(self): with self.assertRaises(AssertionError): self.broker.create_user(user_one) def test_create_new_user_with_valid_data(self): self.setup_imposter('create_new_user.json') user = self.broker.create_user(user_two) self.assertIsNotNone(user) self.assertEqual(user['id'], '00002') self.assertEqual(user['login'], user_two.get('login')) self.assertEqual(user['mobile_phone'], user_two.get('mobile_phone')) def test_create_user_with_differing_login_email(self): self.setup_imposter('create_new_user.json') user = self.broker.create_user(user_seven) self.assertIsNotNone(user) self.assertEqual(user['id'], '00002') self.assertEqual(user_seven['login'], user['login']) self.assertEqual(user_seven['email'], user['email']) def test_update_existing_user_with_id(self): self.setup_imposter('update_existing_user.json') user = self.broker.update_user_phone_number(user_three['id'], user_three['mobile_phone']) self.assertIsNotNone(user) self.assertEqual(user['id'], user_three.get('id')) self.assertEqual(user['login'], user_three.get('login')) self.assertEqual(user['mobile_phone'], user_three.get('mobile_phone')) def test_update_existing_user_without_id_or_phone(self): with self.assertRaises(AssertionError): self.broker.update_user_phone_number(user_two['id'], user_two['mobile_phone']) with self.assertRaises(AssertionError): self.broker.update_user_phone_number(user_three['id'], None) def test_get_user_method(self): self.setup_imposter('update_existing_user.json') user = self.broker.get_user(user_four.get('login')) self.assertEqual(user['login'], user_four.get('login')) self.assertIn('factors', user) self.assertEqual(len(user['factors']), 1) self.assertEqual(user['factors'][0]['phone_number'], user_four['mobile_phone']) def test_get_user_fail(self): self.setup_imposter('update_existing_user.json') self.assertIsNone(self.broker.get_user(user_five.get('login'))) def test_get_user_factors_fail(self): self.setup_imposter('update_existing_user.json') self.assertIsNone(self.broker.get_user(user_six.get('login'))) def test_get_user_id_method(self): self.setup_imposter('update_existing_user.json') user_id = self.broker.get_user_id(user_four.get('login')) self.assertEqual(user_id, '00003') def setup_imposter(self, file_name): file_path = 'test_user_broker/stubs/' + file_name imposter = self.mb.create_imposter(file_path) self.broker._api_client = ApiClient( BASE_URL=self.mb.get_imposter_url(imposter), API_TOKEN='1')