Ejemplo n.º 1
0
 def setUpTestData(cls):
     cls.service = services.TermGathering
     cls.fake_term_1 = factories.TermFactory(value='l')
     cls.fake_term_2 = factories.TermFactory(value='o')
     cls.fake_term_3 = factories.TermFactory(value='e')
     cls.fake_term_4 = factories.TermFactory(value='d', active=False)
     cls.objects = [cls.fake_term_1, cls.fake_term_2, cls.fake_term_3]
Ejemplo n.º 2
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.foo_term = factories.TermFactory(value='foo term')
     cls.bar_term = factories.TermFactory(value='bar term')
     cls.definition_foo = factories.DefinitionFactory(
         uuid='b3ec0487-d422-4d0e-86c0-0b80402fb012',
         term=cls.foo_term,
         value='foo',
     )
     cls.definition_bar = factories.DefinitionFactory(
         uuid='8ce7d087-b231-4562-b43f-dd27c7af7eba',
         term=cls.bar_term,
         value='bar',
     )
     cls.url = reverse('term-search')
Ejemplo n.º 3
0
    def test_add_new__existing_and_disabled_term(self):
        factories.TermFactory(active=False, value='disabled fake term')

        self.assertEqual(models.Term.objects.count(), 0)
        self.assertEqual(models.Term.all_objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 0)

        term = models.Term.all_objects.first()

        self.assertFalse(term.active)

        form_data = {'term': 'disabled fake term', 'value': 'fake definition'}
        form_data.update(self.management_data)

        response = self.client.post(self.url, form_data, follow=True)

        self.assertEqual(response.status_code, 200)

        self.assertEqual(models.Term.objects.count(), 1)
        self.assertEqual(models.Term.all_objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 1)

        term = models.Term.all_objects.first()

        self.assertTrue(term.active)
Ejemplo n.º 4
0
    def test_has_term(self):
        term = factories.TermFactory(value='fake term')

        response = self.client.get(reverse('sitemap'))

        self.assertEqual(response.status_code, 200)
        self.assertContains(response, term.get_absolute_url())
Ejemplo n.º 5
0
 def test_has_link_to_last_term(self):
     term = factories.TermFactory(value="fake_term")
     response = self.client.get(self.url)
     self.assertContains(
         response,
         '<li><a class="last-terms" href="{}">fake_term</a></li>'.format(
             term.get_absolute_url()),
         html=True)
Ejemplo n.º 6
0
    def test_do_have_link_current_page_with_no_searches(self):
        factories.TermFactory()
        response = self.client.get(self.url)

        html_text = ('<a class="page-link" href="#">'
                     '1'
                     '<span class="sr-only">(current)</span>'
                     '</a>')
        self.assertContains(response, html_text, html=True)
Ejemplo n.º 7
0
    def test_has_link_to_term_detail(self):
        term = factories.TermFactory(value='my fake term')
        factories.DefinitionFactory(term=term, value='fake definition')
        response = self.client.get(self.url)

        self.assertContains(
            response,
            f'<a href="{term.get_absolute_url()}">my fake term</a>',
            html=True)
Ejemplo n.º 8
0
    def test_dont_have_link_current_page_with_no_items(self):
        factories.TermFactory()
        url = '{}?{}'.format(self.url, http.urlencode({'v': 'zñ'}))
        response = self.client.get(url)

        html_text = ('<a class="page-link" href="#">'
                     '1'
                     '<span class="sr-only">(current)</span>'
                     '</a>')
        self.assertNotContains(response, html_text, html=True)
Ejemplo n.º 9
0
 def setUp(self):
     self.client = test.Client()
     self.user = auth_factories.UserFactory()
     self.term = factories.TermFactory(value='fake term')
     self.definition = factories.DefinitionFactory(
         uuid='6b4a7a9f-3b8f-494b-8565-f960065802ba',
         term=self.term,
         value='fake definition',
         user=self.user,
     )
     self.url = self.definition.get_absolute_url()
Ejemplo n.º 10
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.user = auth_factories.UserFactory()
     cls.term = factories.TermFactory(value='fake term')
     cls.definition = factories.DefinitionFactory(
         uuid='6b4a7a9f-3b8f-494b-8565-f960065802ba',
         term=cls.term,
         value='fake definition',
         user=cls.user,
     )
     cls.url = cls.definition.get_absolute_url()
Ejemplo n.º 11
0
    def test_has_link_current_page(self):
        term = factories.TermFactory()
        searched_value = term.value[:2]
        url = '{}?{}'.format(self.url, http.urlencode({'v': searched_value}))
        response = self.client.get(url)

        html_text = ('<a class="page-link" href="#">'
                     '1'
                     '<span class="sr-only">(current)</span>'
                     '</a>')
        self.assertContains(response, html_text, html=True)
Ejemplo n.º 12
0
    def test_term_search_form_is_working(self):
        foo_term = factories.TermFactory(value='foo term')
        bar_term = factories.TermFactory(value='bar term')
        factories.DefinitionFactory(term=foo_term, value='foo')
        factories.DefinitionFactory(term=bar_term, value='bar')
        foo_term_html = '<a href="{}">foo term</a>'.format(
            foo_term.get_absolute_url())
        bar_term_html = '<a href="{}">bar term</a>'.format(
            bar_term.get_absolute_url())
        with splinter.Browser('django') as browser:
            browser.visit(self.url)

            self.assertIn(foo_term_html, browser.html)
            self.assertIn(bar_term_html, browser.html)

            browser.fill('v', 'f')
            browser.find_by_id('form-button').click()

            self.assertEqual(browser.url, reverse('term-search'))
            self.assertIn(foo_term_html, browser.html)
            self.assertNotIn(bar_term_html, browser.html)
Ejemplo n.º 13
0
    def test_inactive_terms_does_not_appear(self):
        term = factories.TermFactory(value='fake term')

        response = self.client.get(self.url)

        self.assertContains(response, 'fake term')

        term.active = False
        term.save()

        response = self.client.get(self.url)

        self.assertNotContains(response, 'fake term')
Ejemplo n.º 14
0
 def setUpTestData(cls):
     cls.client = test.Client()
     cls.term = factories.TermFactory(value='fake term')
     cls.definition_foo = factories.DefinitionFactory(
         uuid='cb8d30f8-b60a-46e8-9cad-f3d5ff28d269',
         term=cls.term,
         value='foo',
     )
     cls.definition_bar = factories.DefinitionFactory(
         uuid='75484634-4f96-4bc9-8d94-bfe8523ba7cd',
         term=cls.term,
         value='bar',
     )
     cls.url = reverse('term-detail', kwargs={'slug': cls.term.slug})
Ejemplo n.º 15
0
    def test_has_link_to_next_page(self):
        num_items_per_page = views.TermSearchView.paginate_by

        for n, item in enumerate(range(num_items_per_page + 1)):
            term = factories.TermFactory(value='a' * (n + 1))
            factories.DefinitionFactory(term=term)

        url = '{}?{}'.format(self.url, http.urlencode({'v': 'a'}))
        response = self.client.get(url)

        self.assertContains(response,
                            '<a class="page-link" href="?page=2">2</a>',
                            html=True)
        self.assertContains(
            response,
            '<a class="page-link" href="?page=2">Siguiente &#8594;</a>',
            html=True)
Ejemplo n.º 16
0
    def test_has_link_to_first_page(self):
        num_items_per_page = views.IndexView.paginate_by

        for n, item in enumerate(range(num_items_per_page + 1)):
            term = factories.TermFactory(value='a' * (n + 1))
            factories.DefinitionFactory(term=term)

        url = '{}?{}'.format(self.url, http.urlencode({'v': 'a', 'page': 2}))
        response = self.client.get(url)

        response = self.client.get(url)

        self.assertContains(response,
                            '<a class="page-link" href="?page=1">1</a>',
                            html=True)
        self.assertContains(
            response,
            '<a class="page-link" href="?page=1">&#8592; Anterior</a>',
            html=True)
Ejemplo n.º 17
0
    def test_recaptcha_failed__already_existing_term(self,
                                                     recaptcha_clean_mock):
        def _validation_error_side_effect(values):
            raise exceptions.ValidationError(
                'Connection to reCaptcha server failed',
                code='connection_failed')

        recaptcha_clean_mock.side_effect = _validation_error_side_effect

        self.term = factories.TermFactory(value='fake term')
        self.definition = factories.DefinitionFactory(
            uuid='6b4a7a9f-3b8f-494b-8565-f960065802ba',
            term=self.term,
            value='fake definition 1',
            user=self.user,
        )

        self.assertEqual(models.Term.objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 1)

        form_data = {'term': 'fake term', 'value': 'fake definition 2'}
        form_data.update(self.management_data)

        response = self.client.post(self.url, form_data, follow=True)

        self.assertEqual(response.status_code, 200)

        recaptcha_clean_mock.assert_called_once()

        self.assertEqual(models.Term.objects.count(), 1)
        self.assertEqual(models.Term.all_objects.count(), 1)
        self.assertEqual(models.Definition.objects.count(), 1)

        self.assertEqual(
            models.Term.all_objects.first().value,
            'fake term',
        )
        self.assertEqual(
            models.Definition.all_objects.first().value,
            'fake definition 1',
        )
Ejemplo n.º 18
0
 def setUp(self):
     self.service = services.TermGathering
     self.fake_term_1 = factories.TermFactory(value='l')
     self.fake_term_2 = factories.TermFactory(value='o')
     self.fake_term_3 = factories.TermFactory(value='e')
     self.objects = [self.fake_term_1, self.fake_term_2, self.fake_term_3]
Ejemplo n.º 19
0
 def test_has_header_in_last_terms(self):
     factories.TermFactory()
     response = self.client.get(self.url)
     self.assertContains(response, 'Últimas definiciones')
Ejemplo n.º 20
0
 def setUp(self):
     self.term = factories.TermFactory(value='my fake term')