Esempio n. 1
0
    def test_replace_text_replaces_text(self):
        request = RequestFactory().post(
            "/",
            {
                "search": "the",
                "replace": "teh",
                "search_and_replace_dog_bark": "true",
                "search_and_replace_dog_name": "true",
                "search_and_replace_cat_bio": "true",
                "search_and_replace_cat_name": "true",
                "apply": "true",
                "preview_id": "an-id-used-to-prevent-double-submit",
            },
        )
        SessionMiddleware().process_request(request)
        MessageMiddleware().process_request(request)

        SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)

        self.lucy.refresh_from_db()
        self.momo.refresh_from_db()
        self.adam.refresh_from_db()

        self.assertEqual(self.lucy.bio, "Grew up in teh deep south.")
        self.assertEqual(self.momo.name, "Momo teh first.")
        self.assertEqual(self.adam.bark, "Whef, teh whef!")
Esempio n. 2
0
    def test_render_search_and_replace_form(self):
        request = RequestFactory().get("/")

        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)
        self.assertContains(response, "search_and_replace_dog_name")
        self.assertContains(response, "search_and_replace_dog_bark")
Esempio n. 3
0
    def test_search_and_replace_form_without_preview_does_not_contain_preview_id(
            self):
        request = RequestFactory().get("/")

        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)
        self.assertNotContains(response, "preview_id")
Esempio n. 4
0
    def test_replace_text_preserves_whitespace(self):
        request = RequestFactory().post(
            "/",
            {
                "search": " the ",
                "replace": "X  ",
                "search_and_replace_cat_bio": "true",
                "apply": "true",
                "preview_id": "more-ids-used-to-prevent-double-submit",
            },
        )
        SessionMiddleware().process_request(request)
        MessageMiddleware().process_request(request)

        SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)

        self.lucy.refresh_from_db()

        self.assertEqual(self.lucy.bio, "Grew up inX  deep south.")
Esempio n. 5
0
    def test_prevent_double_submit(self):
        request = RequestFactory().post(
            "/",
            {
                "search": "Lucy",
                "replace": "Lucy Lucy",
                "search_and_replace_cat_name": "true",
                "apply": "true",
                "preview_id": "another-id-used-in-a-double-submit",
            },
        )
        SessionMiddleware().process_request(request)
        MessageMiddleware().process_request(request)
        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)

        self.assertEqual(response.status_code, 302)

        self.lucy.refresh_from_db()
        self.assertEqual(self.lucy.name, "Lucy Lucy")

        request = RequestFactory().post(
            "/",
            {
                "search": "Lucy",
                "replace": "Lucy Lucy",
                "search_and_replace_cat_name": "true",
                "apply": "true",
                "preview_id": "another-id-used-in-a-double-submit",
            },
        )
        SessionMiddleware().process_request(request)
        MessageMiddleware().process_request(request)
        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)

        self.assertEqual(response.status_code, 200)

        self.lucy.refresh_from_db()
        self.assertEqual(self.lucy.name, "Lucy Lucy")
Esempio n. 6
0
    def test_missing_preview_id_replaces_nothing(self):
        request = RequestFactory().post(
            "/",
            {
                "search": "the",
                "replace": "teh",
                "search_and_replace_dog_bark": "true",
                "search_and_replace_dog_name": "true",
                "search_and_replace_cat_bio": "true",
                "search_and_replace_cat_name": "true",
                "apply": "true",
            },
        )
        SessionMiddleware().process_request(request)
        MessageMiddleware().process_request(request)

        SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)

        self.lucy.refresh_from_db()

        self.assertEqual(self.lucy.bio, "Grew up in the deep south.")
Esempio n. 7
0
 def test_search_and_replace_after_submit_contains_preview_id(self):
     request = RequestFactory().post(
         "/",
         {
             "search": "the",
             "search_and_replace_dog_bark": "true",
             "search_and_replace_dog_name": "true",
             "search_and_replace_cat_bio": "true",
             "search_and_replace_cat_name": "true",
         },
     )
     response = SearchAndReplaceView.as_view(
         models_and_fields=self.models_and_fields)(request)
     self.assertContains(response, 'name="preview_id" value="')
Esempio n. 8
0
    def test_search_is_case_sensitive(self):
        request = RequestFactory().post(
            "/",
            {
                "search": "South",
                "replace": "east",
                "search_and_replace_cat_bio": "true",
            },
        )
        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)
        self.assertNotContains(response, "Lucy")

        request = RequestFactory().post(
            "/",
            {
                "search": "south",
                "replace": "east",
                "search_and_replace_cat_bio": "true",
            },
        )
        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)
        self.assertContains(response, "Lucy")
Esempio n. 9
0
    def test_render_search_and_replace_form_preview_matches_the_right_fields(
            self):
        request = RequestFactory().post(
            "/",
            {
                "search": "the",
                "search_and_replace_dog_bark": "true",
                "search_and_replace_dog_name": "true",
                "search_and_replace_cat_bio": "true",
                "search_and_replace_cat_name": "false",
            },
        )

        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)
        self.assertContains(response, "Lucy")
        self.assertContains(response, "Peter")
        self.assertContains(response, "Adam")
        self.assertNotContains(response, "Momo")
        self.assertNotContains(response, "George")
Esempio n. 10
0
    def test_preview_does_not_change_values(self):
        request = RequestFactory().post(
            "/",
            {
                "search": "the",
                "replace": "teh",
                "search_and_replace_dog_bark": "true",
                "search_and_replace_dog_name": "true",
                "search_and_replace_cat_bio": "true",
                "search_and_replace_cat_name": "true",
            },
        )

        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)

        self.lucy.refresh_from_db()

        self.assertContains(response, "the deep south")
        self.assertContains(response, "teh deep south")
        self.assertIn("the", self.lucy.bio)
        self.assertNotIn("teh", self.lucy.bio)
Esempio n. 11
0
    def test_render_search_and_replace_form_preview_contains_the_right_values(
            self):
        request = RequestFactory().post(
            "/",
            {
                "search": "the",
                "replace": "teh",
                "search_and_replace_dog_bark": "true",
                "search_and_replace_dog_name": "true",
                "search_and_replace_cat_bio": "true",
                "search_and_replace_cat_name": "true",
            },
        )

        response = SearchAndReplaceView.as_view(
            models_and_fields=self.models_and_fields)(request)
        self.assertContains(response, "the deep south")
        self.assertContains(response, "teh deep south")
        self.assertContains(response, "the north")
        self.assertContains(response, "teh north")
        self.assertContains(response, "the first")
        self.assertContains(response, "teh first")
        self.assertContains(response, "the whef")
        self.assertContains(response, "teh whef")
Esempio n. 12
0
 def test_render_invalid_form(self):
     request = RequestFactory().post("/", {})
     response = SearchAndReplaceView.as_view(
         models_and_fields=self.models_and_fields)(request)
     self.assertContains(response, "form")