Exemplo n.º 1
0
def zapier_subscription_pre_save(sender, instance, *args, **kwargs):
    """
    Creates a repeater object corresponding to the type of trigger (form or case)
    """
    if instance.pk:
        return

    if instance.event_name == EventTypes.NEW_FORM:
        repeater = FormRepeater(domain=instance.domain,
                                url=instance.url,
                                format='form_json',
                                include_app_id_param=False,
                                white_listed_form_xmlns=[instance.form_xmlns])

    elif instance.event_name == EventTypes.NEW_CASE:
        repeater = CaseRepeater(
            domain=instance.domain,
            url=instance.url,
            format='case_json',
            white_listed_case_types=[instance.case_type],
        )
    else:
        raise ImmediateHttpResponse(
            HttpBadRequest('The passed event type is not valid.'))

    repeater.save()
    instance.repeater_id = repeater.get_id
Exemplo n.º 2
0
    def setUpClass(cls):
        super(CaseRepeaterTest, cls).setUpClass()

        cls.domain_name = "test-domain"
        cls.domain = create_domain(cls.domain_name)
        cls.repeater = CaseRepeater(
            domain=cls.domain_name,
            url="case-repeater-url",
        )
        cls.repeater.save()
Exemplo n.º 3
0
    def setUpClass(cls):
        repeater = CaseRepeater(
            domain=cls.domain,
        )
        cls.repeaters = [
            repeater
        ]

        for repeater in cls.repeaters:
            repeater.save()
Exemplo n.º 4
0
    def setUp(self):
        super(RepeaterFailureTest, self).setUp()
        self.domain_name = "test-domain"
        self.domain = create_domain(self.domain_name)

        self.repeater = CaseRepeater(
            domain=self.domain_name,
            url='case-repeater-url',
        )
        self.repeater.save()
        self.post_xml(self.xform_xml, self.domain_name)
Exemplo n.º 5
0
    def setUp(self):
        super(TestRepeaterFormat, self).setUp()
        self.domain = "test-domain"
        create_domain(self.domain)
        self.post_xml(self.xform_xml, self.domain)

        self.repeater = CaseRepeater(
            domain=self.domain,
            url='case-repeater-url',
            format='new_format',
        )
        self.repeater.save()
Exemplo n.º 6
0
 def setUp(self):
     super(RepeaterTest, self).setUp()
     self.domain = "test-domain"
     create_domain(self.domain)
     self.case_repeater = CaseRepeater(
         domain=self.domain,
         url='case-repeater-url',
     )
     self.case_repeater.save()
     self.form_repeater = FormRepeater(
         domain=self.domain,
         url='form-repeater-url',
     )
     self.form_repeater.save()
     self.log = []
     self.post_xml(self.xform_xml, self.domain)
Exemplo n.º 7
0
    def test_clone_repeaters(self):
        from corehq.apps.repeaters.models import Repeater
        from corehq.apps.repeaters.models import CaseRepeater
        from corehq.apps.repeaters.models import FormRepeater
        from custom.enikshay.integrations.nikshay.repeaters import NikshayRegisterPatientRepeater

        self.assertEqual(0, len(Repeater.by_domain(self.new_domain)))
        self.assertEqual(
            0, len(NikshayRegisterPatientRepeater.by_domain(self.new_domain)))

        case_repeater = CaseRepeater(
            domain=self.old_domain,
            url='case-repeater-url',
        )
        case_repeater.save()
        self.addCleanup(case_repeater.delete)
        form_repeater = FormRepeater(
            domain=self.old_domain,
            url='form-repeater-url',
        )
        form_repeater.save()
        self.addCleanup(form_repeater.delete)
        custom_repeater = NikshayRegisterPatientRepeater(
            domain=self.old_domain, url='99dots')
        custom_repeater.save()
        self.addCleanup(custom_repeater.delete)

        self.make_clone(include=['repeaters'])

        cloned_repeaters = Repeater.by_domain(self.new_domain)
        self.assertEqual(3, len(cloned_repeaters))
        self.assertEqual(
            {'CaseRepeater', 'FormRepeater', 'NikshayRegisterPatientRepeater'},
            {repeater.doc_type
             for repeater in cloned_repeaters})

        # test cache clearing
        cloned_niksay_repeaters = NikshayRegisterPatientRepeater.by_domain(
            self.new_domain)
        self.assertEqual(1, len(cloned_niksay_repeaters))
Exemplo n.º 8
0
 def test_get_format_by_deprecated_name(self):
     self.assertIsInstance(CaseRepeater(
         domain=self.domain,
         url='case-repeater-url',
         format='new_format_alias',
     ).generator, self.new_generator)