Example #1
0
    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'])
Example #2
0
 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)
Example #3
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
Example #4
0
    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'])
Example #5
0
 def test_works_nousers_promo(self):
     results = group_manager._api_run_generic(self.config,
                                              self.testfun_promo,
                                              [])
     self.assertEqual(len(results), 0)
Example #6
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)