Esempio n. 1
0
    def test_default_prefix(self, live_server, browser_in, users,
                            driver_wait_time):
        """Test prefix shows on form."""
        from site_config.models import SiteConfiguration

        config = SiteConfiguration.get_solo()
        config.default_number_prefix = "+45"
        config.save()
        b = load_page(browser_in, driver_wait_time, live_server + URI)

        # test is there
        def _test():
            num_input = b.find_element_by_id("id_number")
            assert num_input.get_attribute("value") == "+45"

        assert_with_timeout(_test, 10 * driver_wait_time)

        config.default_number_prefix = ""
        config.save()
        b = load_page(browser_in, driver_wait_time, live_server + URI)

        # test is not there
        def _test():
            num_input = b.find_element_by_id("id_number")
            assert num_input.get_attribute("value") != "+45"
Esempio n. 2
0
    def test_create_new_keyword(self, live_server, browser_in, keywords,
                                groups, users, driver_wait_time):
        """Test good form submission."""
        assert len(keywords) == models.Keyword.objects.count()
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_keyword(b, driver_wait_time)
        b = add_desc(b, driver_wait_time)
        b = add_custom_response(b, driver_wait_time)
        b = add_deac_response(b, driver_wait_time)
        b = add_too_early_response(b, driver_wait_time)
        b = add_activate_time(b, driver_wait_time)
        b = add_deactivate_time(b, driver_wait_time)
        b = add_linked_groups(b, driver_wait_time)
        b = add_owner(b, driver_wait_time, users["staff"].pk)
        b = add_subscriber(b, driver_wait_time, users["staff"].pk)
        b = send_form(b, driver_wait_time)

        def _test():
            assert "/keyword/all/" in b.current_url
            assert len(keywords) + 1 == models.Keyword.objects.count()
            k = models.Keyword.objects.get(keyword="form")
            assert k.is_live
            assert k.subscribed_to_digest.count() == 1
            assert k.owners.count() == 1

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 3
0
 def test_empty_form(self, live_server, browser_in, users,
                     driver_wait_time):
     """Test submitting an empty form."""
     b = load_page(browser_in, driver_wait_time, live_server + ADHOC_URI)
     send_button = b.find_element_by_id("send_button")
     assert send_button.text == "Send ($0.00)"
     assert send_button.get_attribute("disabled") == "true"
Esempio n. 4
0
    def test_twilio_delete_flow(self, live_server, browser_in, users, smsin,
                                smsout, driver_wait_time):
        """Test good form submission."""
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        n_in = models.SmsInbound.objects.count()
        n_out = models.SmsOutbound.objects.count()
        sleep(driver_wait_time * 3)
        click_and_wait(b.find_element_by_id(f'incoming_sms{smsin["sms1"].pk}'),
                       driver_wait_time)
        click_and_wait(
            b.find_element_by_id(f'outgoing_sms{smsout["smsout"].pk}'),
            driver_wait_time)
        click_and_wait(b.find_element_by_id("deleteButton"), driver_wait_time)
        click_and_wait(b.find_element_by_id("confirmButton"), driver_wait_time)
        b.find_element_by_id("confirmDeleteInput").send_keys(
            "I understand this cannot be undone")
        click_and_wait(b.find_element_by_id("finalConfirmButton"),
                       driver_wait_time)

        def _test():
            assert "Messages successfully queued for deletion." in b.page_source
            assert n_in - 1 == models.SmsInbound.objects.count()
            assert n_out - 1 == models.SmsOutbound.objects.count()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 5
0
 def test_prepopulated_content(self, live_server, browser_in, users,
                               driver_wait_time, recipients):
     """Test the multiple recipients in prepopulated field."""
     # load the incoming log
     uri = "{0}?content={1}".format(ADHOC_URI, "DO%20NOT%20REPLY")
     b = load_page(browser_in, driver_wait_time, live_server + uri)
     content_box = b.find_element_by_id("id_content")
     assert "DO NOT REPLY" == content_box.get_attribute("value")
Esempio n. 6
0
    def test_good_form(self, live_server, browser_in, users, driver_wait_time,
                       groups):
        """Test good form submission."""
        b = load_page(browser_in, driver_wait_time, live_server + GROUP_URI)
        b = add_content_and_group(b, driver_wait_time)
        b = click_send(b, driver_wait_time)

        assert "Please check the logs for verification" in b.page_source
        assert "/outgoing/" in b.current_url
Esempio n. 7
0
    def test_scheduled_message(self, live_server, browser_in, users,
                               driver_wait_time, groups):
        """Test good form submission with a scheduled time."""
        b = load_page(browser_in, driver_wait_time, live_server + GROUP_URI)
        b = add_content_and_group(b, driver_wait_time)
        b = add_scheduled_time(b, driver_wait_time)
        b = click_send(b, driver_wait_time)

        assert "/scheduled/sms/" in b.current_url
Esempio n. 8
0
    def test_good_form(self, live_server, browser_in, users, driver_wait_time,
                       recipients):
        """Test good form submission."""
        b = load_page(browser_in, driver_wait_time, live_server + ADHOC_URI)
        b = add_content_and_recipient(b, driver_wait_time,
                                      recipients["calvin"].pk)
        b = click_send(b, driver_wait_time)

        assert "Please check the logs for verification" in b.page_source
        assert "/outgoing/" in b.current_url
Esempio n. 9
0
def test_csv_import_ok(live_server, browser_in, recipients, users,
                       driver_wait_time):
    assert len(recipients) == models.Recipient.objects.count()
    b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
    b = add_csv_data(b, driver_wait_time, "csv,import," + DEFAULT_NUM)
    b = send_form(b, driver_wait_time)

    def _test():
        assert len(recipients) + 1 == models.Recipient.objects.count()
        assert "/recipient/import/" not in b.current_url

    assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 10
0
    def test_create_all_group_form(self, live_server, browser_in, recipients, groups, driver_wait_time):
        """Test form to create group with all contacts."""
        b = load_page(browser_in, driver_wait_time, live_server + "/group/create_all/")

        name_box = b.find_element_by_name("group_name")
        name_box.clear()
        name_box.send_keys("Test All Group")
        sleep(driver_wait_time)

        send_form(b, driver_wait_time)
        assert "/group/all/" in b.current_url
        assert models.RecipientGroup.objects.get(name="Test All Group").all_recipients_not_in_group.count() == 0
Esempio n. 11
0
def test_csv_import_bad(live_server, browser_in, recipients, users,
                        driver_wait_time):
    assert len(recipients) == models.Recipient.objects.count()
    b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
    b = add_csv_data(b, driver_wait_time, "csv,")
    b = send_form(b, driver_wait_time)

    def _test():
        assert len(recipients) == models.Recipient.objects.count()
        assert "/recipient/import/" in b.current_url
        assert "Uh oh," in b.page_source

    assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 12
0
    def test_create_existing_keyword(self, live_server, browser_in, keywords,
                                     users, driver_wait_time):
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_keyword(b, driver_wait_time, k="test")
        b = send_form(b, driver_wait_time)

        def _test():
            assert "/keyword/new/" in b.current_url
            assert "keyword with this keyword already exists" in b.page_source.lower(
            )
            assert len(keywords) == models.Keyword.objects.count()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 13
0
    def test_too_expensive(self, live_server, browser_in, users,
                           driver_wait_time, groups):
        """Test good form submission but with a too expensive message."""
        user_profile = users["staff"].profile
        user_profile.can_send_sms = True
        user_profile.message_cost_limit = 0.01
        user_profile.save()

        b = load_page(browser_in, driver_wait_time, live_server + GROUP_URI)
        b = add_content_and_group(b, driver_wait_time)
        b = click_send(b, driver_wait_time)

        assert "cost no more than" in b.page_source
        assert GROUP_URI in b.current_url
Esempio n. 14
0
    def test_create_existing_group(self, live_server, browser_in, users, driver_wait_time):
        self.test_create_new_group(live_server, browser_in, users, driver_wait_time)
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_group_name(b, driver_wait_time)
        b = add_description(b, driver_wait_time)
        b = send_form(b, driver_wait_time)

        def _test():
            assert 1 == models.RecipientGroup.objects.count()
            assert "/group/new/" in b.current_url
            assert "recipient group with this name of group already exists" in b.page_source.lower()
            assert "group members" not in b.page_source.lower()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 15
0
    def test_create_new_group(self, live_server, browser_in, users, driver_wait_time):
        """Test good form submission."""
        assert 0 == models.RecipientGroup.objects.count()
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_group_name(b, driver_wait_time)
        b = add_description(b, driver_wait_time)
        b = send_form(b, driver_wait_time)

        def _test():
            assert 1 == models.RecipientGroup.objects.count()
            assert "/group/all/" in b.current_url
            assert "test_new_group" in b.page_source

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 16
0
    def test_scheduled_message(self, live_server, browser_in, users,
                               driver_wait_time, recipients):
        """Test good form submission with a scheduled time."""
        b = load_page(browser_in, driver_wait_time, live_server + ADHOC_URI)
        # add scheduled time
        b = add_scheduled_time(b, driver_wait_time)
        b = add_content_and_recipient(b, driver_wait_time,
                                      recipients["calvin"].pk)
        b = click_send(b, driver_wait_time)

        def _test():
            assert "/scheduled/sms/" in b.current_url

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 17
0
    def test_create_existing_archived_group(self, live_server, browser_in, users, driver_wait_time):
        self.test_create_new_group(live_server, browser_in, users, driver_wait_time)
        for g in models.RecipientGroup.objects.all():
            g.is_archived = True
            g.save()
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_group_name(b, driver_wait_time)

        def _test():
            assert "/group/new/" in b.current_url
            assert "There is already a Group that with that name in the archive".lower() in b.page_source.lower()
            assert "Or you can restore the group here:".lower() in b.page_source.lower()
            assert "group members" not in b.page_source.lower()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 18
0
    def test_edit_group(self, live_server, browser_in, users, driver_wait_time, groups):
        assert len(groups) == models.RecipientGroup.objects.count()
        b = load_page(browser_in, driver_wait_time, live_server + "/group/edit/{}/".format(groups["test_group"].pk))
        b = add_group_name(b, driver_wait_time)
        b = add_description(b, driver_wait_time)
        b = send_form(b, driver_wait_time)

        def _test():
            assert len(groups) == models.RecipientGroup.objects.count()
            assert "/group/all/" in b.current_url
            assert "test_new_group" in b.page_source
            assert groups["test_group"].description not in b.page_source
            assert "group members" not in b.page_source.lower()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 19
0
    def test_create_new_contact(self, live_server, browser_in, recipients,
                                users, driver_wait_time):
        """Test good form submission."""
        assert len(recipients) == models.Recipient.objects.count()
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_first_name(b, driver_wait_time)
        b = add_last_name(b, driver_wait_time)
        b = add_number(b, driver_wait_time)
        b = send_form(b, driver_wait_time)

        def _test():
            assert len(recipients) + 1 == models.Recipient.objects.count()
            assert "/recipient/all/" in b.current_url

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 20
0
    def test_edit_keyword(self, live_server, browser_in, keywords, users,
                          driver_wait_time):
        assert len(keywords) == models.Keyword.objects.count()
        b = load_page(browser_in, driver_wait_time,
                      live_server + "/keyword/edit/test/")
        b = add_desc(b, driver_wait_time)
        b = send_form(b, driver_wait_time)

        def _test():
            assert len(keywords) == models.Keyword.objects.count()
            assert "/keyword/all/" in b.current_url
            assert "form" in b.page_source
            assert models.Keyword.objects.get(keyword="test").keyword == "test"

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 21
0
    def test_create_existing_contact(self, live_server, browser_in, recipients,
                                     users, driver_wait_time):
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_first_name(b, driver_wait_time)
        b = add_last_name(b, driver_wait_time)
        b = add_number(b,
                       driver_wait_time,
                       num=str(recipients["calvin"].number))
        b = send_form(b, driver_wait_time)

        def _test():
            assert "/recipient/new/" in b.current_url
            assert "recipient with this number already exists" in b.page_source.lower(
            )
            assert len(recipients) == models.Recipient.objects.count()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 22
0
    def test_create_existing_archived_keyword(self, live_server, browser_in,
                                              keywords, users,
                                              driver_wait_time):
        for k in models.Keyword.objects.all():
            k.is_archived = True
            k.save()
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_keyword(b, driver_wait_time, k="test")

        def _test():
            assert "/keyword/new/" in b.current_url
            assert "there is already a keyword that with that name in the archive".lower(
            ) in b.page_source.lower()
            assert "Or you can restore the keyword here:".lower(
            ) in b.page_source.lower()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 23
0
    def test_sms_too_long(self, live_server, browser_in, users,
                          driver_wait_time, recipients):
        """Test form submission with a message that is too long."""
        from site_config.models import SiteConfiguration

        s = SiteConfiguration.get_solo()
        s.sms_char_limit = 2
        s.save()
        b = load_page(browser_in, driver_wait_time, live_server + ADHOC_URI)
        b = add_content_and_recipient(b, driver_wait_time,
                                      recipients["calvin"].pk)
        b = click_send(b, driver_wait_time)

        assert "You have exceeded" in b.page_source
        assert ADHOC_URI in b.current_url
        s.sms_char_limit = 200
        s.save()
Esempio n. 24
0
 def test_prepopulated(self, live_server, browser_in, users,
                       driver_wait_time, recipients, smsin):
     """Test the reply to button on incoming log."""
     # load the incoming log
     b = load_page(browser_in, driver_wait_time, live_server + LOG_URI)
     # check reply buttons are present
     reply_buttons = b.find_elements_by_class_name("fa-reply")
     assert len(reply_buttons) == len(smsin)
     # test button works
     click_and_wait(reply_buttons[0], driver_wait_time)
     assert "/send/adhoc/" in browser_in.current_url
     assert "recipients=[" in browser_in.current_url
     # check message sent to correct recipient
     b = add_content(b, driver_wait_time)
     b = click_send(b, driver_wait_time)
     assert "Please check the logs for verification" in b.page_source
     assert "/outgoing/" in b.current_url
     last_out_sms = SmsOutbound.objects.all()[0]
     assert last_out_sms.recipient.pk == recipients["calvin"].pk
Esempio n. 25
0
    def test_create_existing_archived_contact(self, live_server, browser_in,
                                              recipients, users,
                                              driver_wait_time):
        self.test_create_new_contact(live_server, browser_in, recipients,
                                     users, driver_wait_time)
        for g in models.Recipient.objects.all():
            g.is_archived = True
            g.save()
        b = load_page(browser_in, driver_wait_time, live_server + NEW_URI)
        b = add_first_name(b, driver_wait_time)
        b = add_last_name(b, driver_wait_time)
        b = add_number(b, driver_wait_time)

        def _test():
            assert "/recipient/new/" in b.current_url
            assert "There is already a Contact that with that number in the archive".lower(
            ) in b.page_source.lower()
            assert "You can restore the contact here:".lower(
            ) in b.page_source.lower()

        assert_with_timeout(_test, 10 * driver_wait_time)
Esempio n. 26
0
    def test_edit_contact(self, live_server, browser_in, recipients, users,
                          driver_wait_time):
        assert len(recipients) == models.Recipient.objects.count()
        b = load_page(
            browser_in, driver_wait_time, live_server +
            "/recipient/edit/{}/".format(recipients["calvin"].pk))
        b = add_first_name(b, driver_wait_time)
        b = add_last_name(b, driver_wait_time)
        b = tick_never_contact(b, driver_wait_time)
        b = send_form(b, driver_wait_time)

        def _test():
            assert len(recipients) == models.Recipient.objects.count()
            assert "/recipient/all/" in b.current_url
            assert "first" in b.page_source
            assert "last" in b.page_source
            r = models.Recipient.objects.get(pk=recipients["calvin"].pk)
            assert str(r.number) == str(recipients["calvin"].number)
            assert r.never_contact

        assert_with_timeout(_test, 10 * driver_wait_time)