예제 #1
0
    def test_repeater_auth_manager(self):
        # Mimics the way Repeaters are made; similarly, it turns out, to
        # laws and sausages.
        self.client.login(
            username='******',
            password='******',
        )
        url = reverse(AddFormRepeaterView.urlname,
                      kwargs={
                          'domain': self.domain.name,
                      })
        repeater_data = {
            'domain': DOMAIN,
            'url': URL,
            'auth_type': BASIC_AUTH,
            'username': USERNAME,
            'password': PASSWORD,
            'notify_addresses_str': ADMIN,
            'format': FormRepeaterXMLPayloadGenerator.format_name,
        }
        self.client.post(url, repeater_data, follow=True)

        repeater = FormRepeater.by_domain(DOMAIN)[0]
        try:
            auth_manager = repeater.get_auth_manager()
            self.assertIsInstance(auth_manager, BasicAuthManager)
            self.assertEqual(auth_manager.username, USERNAME)
            self.assertEqual(auth_manager.password, PASSWORD)
            self.assertNotEqual(auth_manager.password, repeater.password)
            self.assertTrue(repeater.password.startswith(f'${ALGO_AES}$'))
        finally:
            for repeater in FormRepeater.by_domain(DOMAIN):
                repeater.delete()
예제 #2
0
 def test_unsubscribe_form(self):
     ZapierSubscription.objects.create(
         url=ZAPIER_URL,
         user_id=self.web_user.get_id,
         domain=TEST_DOMAIN,
         event_name=EventTypes.NEW_FORM,
         application_id=self.application.get_id,
         form_xmlns=FORM_XMLNS)
     self.assertNotEqual(len(FormRepeater.by_domain(TEST_DOMAIN)), 0)
     data = {"target_url": ZAPIER_URL}
     response = self.client.post(
         reverse(UnsubscribeView.urlname, kwargs={'domain': self.domain}),
         data=json.dumps(data),
         content_type='application/json; charset=utf-8',
         HTTP_AUTHORIZATION='ApiKey test:{}'.format(self.api_key))
     self.assertEqual(response.status_code, 200)
     self.assertEqual(ZapierSubscription.objects.all().count(), 0)
     self.assertEqual(len(FormRepeater.by_domain(TEST_DOMAIN)), 0)
예제 #3
0
 def test_unsubscribe_form(self):
     ZapierSubscription.objects.create(
         url=ZAPIER_URL,
         user_id=self.web_user.get_id,
         domain=TEST_DOMAIN,
         event_name=EventTypes.NEW_FORM,
         application_id=self.application.get_id,
         form_xmlns=FORM_XMLNS
     )
     self.assertNotEqual(len(FormRepeater.by_domain(TEST_DOMAIN)), 0)
     data = {
         "target_url": ZAPIER_URL
     }
     response = self.client.post(reverse(UnsubscribeView.urlname, kwargs={'domain': self.domain}),
                                 data=json.dumps(data),
                                 content_type='application/json; charset=utf-8',
                                 HTTP_AUTHORIZATION='ApiKey test:{}'.format(self.api_key))
     self.assertEqual(response.status_code, 200)
     self.assertEqual(ZapierSubscription.objects.all().count(), 0)
     self.assertEqual(len(FormRepeater.by_domain(TEST_DOMAIN)), 0)
예제 #4
0
def cleanup_repeaters_for_domain(domain):
    for repeater in FormRepeater.by_domain(domain):
        repeater.delete()
    for case_repeater_class in CASE_TYPE_REPEATER_CLASS_MAP.values():
        for repeater in case_repeater_class.by_domain(domain):
            repeater.delete()
예제 #5
0
def cleanup_repeaters_for_domain(domain):
    for repeater in FormRepeater.by_domain(domain):
            repeater.delete()
    for case_repeater_class in CASE_TYPE_REPEATER_CLASS_MAP.values():
        for repeater in case_repeater_class.by_domain(domain):
            repeater.delete()