Esempio n. 1
0
class UserRepeaterTest(TestCase):
    domain = 'user-repeater'

    def setUp(self):
        super(UserRepeaterTest, self).setUp()
        self.repeater = UserRepeater(
            domain=self.domain,
            url='super-cool-url',
        )
        self.repeater.save()

    def tearDown(self):
        super(UserRepeaterTest, self).tearDown()
        delete_all_repeat_records()
        delete_all_repeaters()

    def repeat_records(self):
        # Enqueued repeat records have next_check set 48 hours in the future.
        later = datetime.utcnow() + timedelta(hours=48 + 1)
        return RepeatRecord.all(domain=self.domain, due_before=later)

    def make_user(self, username):
        user = CommCareUser.create(
            self.domain,
            "{}@{}.commcarehq.org".format(username, self.domain),
            "123",
        )
        self.addCleanup(user.delete)
        return user

    def test_trigger(self):
        self.assertEqual(0, len(self.repeat_records().all()))
        user = self.make_user("bselmy")
        records = self.repeat_records().all()
        self.assertEqual(1, len(records))
        record = records[0]
        self.assertEqual(
            json.loads(record.get_payload()), {
                'id':
                user._id,
                'username':
                user.username,
                'first_name':
                '',
                'last_name':
                '',
                'default_phone_number':
                None,
                'user_data': {
                    'commcare_project': self.domain
                },
                'groups': [],
                'phone_numbers': [],
                'email':
                '',
                'resource_uri':
                '/a/user-repeater/api/v0.5/user/{}/'.format(user._id),
            })
Esempio n. 2
0
class UserRepeaterTest(TestCase):
    domain = 'user-repeater'

    def setUp(self):
        super(UserRepeaterTest, self).setUp()
        self.repeater = UserRepeater(
            domain=self.domain,
            url='super-cool-url',
        )
        self.repeater.save()

    def tearDown(self):
        super(UserRepeaterTest, self).tearDown()
        delete_all_repeat_records()
        delete_all_repeaters()

    def repeat_records(self):
        # Enqueued repeat records have next_check set 48 hours in the future.
        later = datetime.utcnow() + timedelta(hours=48 + 1)
        return RepeatRecord.all(domain=self.domain, due_before=later)

    def make_user(self, username):
        user = CommCareUser.create(
            self.domain,
            "{}@{}.commcarehq.org".format(username, self.domain),
            "123",
        )
        self.addCleanup(user.delete)
        return user

    def test_trigger(self):
        self.assertEqual(0, len(self.repeat_records().all()))
        user = self.make_user("bselmy")
        records = self.repeat_records().all()
        self.assertEqual(1, len(records))
        record = records[0]
        self.assertEqual(
            json.loads(record.get_payload()),
            {
                'id': user._id,
                'username': user.username,
                'first_name': '',
                'last_name': '',
                'default_phone_number': None,
                'user_data': {'commcare_project': self.domain},
                'groups': [],
                'phone_numbers': [],
                'email': '',
                'resource_uri': '/a/user-repeater/api/v0.5/user/{}/'.format(user._id),
            }
        )
Esempio n. 3
0
class UserRepeaterTest(TestCase, DomainSubscriptionMixin):
    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        cls.domain = 'user-repeater'

        cls.domain_obj = create_domain(name=cls.domain)

        # DATA_FORWARDING is on PRO and above
        cls.setup_subscription(cls.domain, SoftwarePlanEdition.PRO)

    def setUp(self):
        super(UserRepeaterTest, self).setUp()
        self.repeater = UserRepeater(
            domain=self.domain,
            url='super-cool-url',
        )
        self.repeater.save()

    @classmethod
    def tearDownClass(cls):
        cls.teardown_subscriptions()
        cls.domain_obj.delete()
        clear_plan_version_cache()
        super().tearDownClass()

    def tearDown(self):
        super().tearDown()
        delete_all_repeat_records()
        delete_all_repeaters()

    def repeat_records(self):
        # Enqueued repeat records have next_check set 48 hours in the future.
        later = datetime.utcnow() + timedelta(hours=48 + 1)
        return RepeatRecord.all(domain=self.domain, due_before=later)

    def make_user(self, username):
        user = CommCareUser.create(
            self.domain,
            "{}@{}.commcarehq.org".format(username, self.domain),
            "123",
        )
        self.addCleanup(user.delete)
        return user

    def test_trigger(self):
        self.assertEqual(0, len(self.repeat_records().all()))
        user = self.make_user("bselmy")
        records = self.repeat_records().all()
        self.assertEqual(1, len(records))
        record = records[0]
        self.assertEqual(
            json.loads(record.get_payload()), {
                'id':
                user._id,
                'username':
                user.username,
                'first_name':
                '',
                'last_name':
                '',
                'default_phone_number':
                None,
                'user_data': {
                    'commcare_project': self.domain
                },
                'groups': [],
                'phone_numbers': [],
                'email':
                '',
                'resource_uri':
                '/a/user-repeater/api/v0.5/user/{}/'.format(user._id),
            })