def test_exception_multiuser_nopromo(self): users = [{'field1': sentinel.field1_1, 'field2': sentinel.field2_1,}, {'field1': sentinel.field1_2, 'field2': sentinel.field2_2,}, {'field1': sentinel.field1_3, 'field2': sentinel.field2_3,},] poplist = copy.copy(users) def side_effect(*args, **kwargs): if len(poplist) > 1: return poplist.pop(0) else: raise api_interface.ApiActionFailedError() self.testfun_nopromo_mock.side_effect = side_effect with self.assertRaises(group_manager.BailApiCall) as cm: _ = group_manager._api_run_generic(self.config, self.testfun_nopromo, users) e = cm.exception results, = e.args self.assertEqual(len(results), len(users) - 1) for i, d in enumerate(results): self.assertIs(d['field1'], users[i]['field1']) self.assertIs(d['field2'], users[i]['field2'])
def test_exception_oneuser_nopromo(self): user = {'field1': sentinel.field1, 'field2': sentinel.field2} self.testfun_nopromo_mock.side_effect = api_interface.ApiActionFailedError with self.assertRaises(group_manager.BailApiCall) as cm: results = group_manager._api_run_generic(self.config, self.testfun_nopromo, [user]) e = cm.exception result_list, = e.args self.assertEqual(len(result_list), 0)
def test_works_oneuser_promo(self): user = {'field1': sentinel.field1, 'field2': sentinel.field2} results = group_manager._api_run_generic(self.config, self.testfun_promo, [user]) self.assertEqual(len(results), 1) self.assertIs(results[0], user) args, _ = self.testfun_promo_mock.call_args assert user in args assert sentinel.promo_code in args
def test_works_multiuser_promo(self): users = [{'field1': sentinel.field1_1, 'field2': sentinel.field2_1,}, {'field1': sentinel.field1_2, 'field2': sentinel.field2_2,}, {'field1': sentinel.field1_3, 'field2': sentinel.field2_3,},] results = group_manager._api_run_generic(self.config, self.testfun_promo, users) self.assertEqual(len(results), len(users)) for i, d in enumerate(results): self.assertIs(d['field1'], users[i]['field1']) self.assertIs(d['field2'], users[i]['field2'])
def test_works_nousers_promo(self): results = group_manager._api_run_generic(self.config, self.testfun_promo, []) self.assertEqual(len(results), 0)
def test_exception_nousers_nopromo(self): self.testfun_nopromo.side_effect = api_interface.ApiActionFailedError results = group_manager._api_run_generic(self.config, self.testfun_nopromo, []) self.assertEqual(len(results), 0)