def test_view_goes_to_home_page_and_displays_multiple_search_results(self):
     handcock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
     marigold = factories.Pirate(name='Boa Marigold',
                                 bounty=None,
                                 crew=None)
     response = self.client.get(reverse('bounties:index'),
                                data={'pirate-search-field': 'Boa'})
 def test_search_pirate_whose_name_exactly_matches_keyword(self):
     luffy = factories.Pirate()
     alvida = factories.Pirate(name='Iron Mace Alvida',
                               bounty=None,
                               crew=None)
     result = Pirate.objects.get(name=luffy.name)
     self.assertEqual(result, luffy)
Beispiel #3
0
 def test_template_has_all_pirate_names_in_suggestions(self):
     luffy = factories.Pirate()
     alvida = factories.Pirate(name='Iron Mace Alvida',
                               bounty=None,
                               crew=None)
     shanks = factories.Pirate(name='Red-Haired Shanks',
                               bounty=None,
                               crew=None)
     response = self.client.get(reverse('bounties:index'))
     self.assertContains(response,
                         '<option value="%s">%s</option>' % (
                             luffy.name,
                             luffy.name,
                         ),
                         html=True)
     self.assertContains(response,
                         '<option value="%s">%s</option>' % (
                             alvida.name,
                             alvida.name,
                         ),
                         html=True)
     self.assertContains(response,
                         '<option value="%s">%s</option>' % (
                             shanks.name,
                             shanks.name,
                         ),
                         html=True)
 def test_returns_pirates_with_matching_names(self):
     luffy = factories.Pirate()
     hancock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
     marigold = factories.Pirate(name='Boa Marigold',
                                 bounty=None,
                                 crew=None)
     result = Pirate.objects.filter(name__icontains='Boa')
     self.assertEqual(result.count(), 2)
 def test_view_returns_list_template_if_there_are_multiple_search_results(
         self):
     handcock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
     marigold = factories.Pirate(name='Boa Marigold',
                                 bounty=None,
                                 crew=None)
     response = self.client.get(reverse('bounties:index'),
                                data={'pirate-search-field': 'Boa'})
     self.assertTemplateUsed(response, 'list.html')
Beispiel #6
0
    def test_shows_crew_of_matching_pirates(self):
        crew = factories.Crew(name='Kuja Pirates')
        hancock = factories.Pirate(name='Boa Hancock', bounty=None, crew=crew)
        marigold = factories.Pirate(name='Boa Marigold',
                                    bounty=None,
                                    crew=crew)

        response = self.client.get(reverse('bounties:index'),
                                   data={'pirate-search-field': 'Boa'})
        self.assertContains(response, crew.name.upper())
Beispiel #7
0
    def test_shows_image_of_matching_pirates(self):
        hancock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
        marigold = factories.Pirate(name='Boa Marigold',
                                    bounty=None,
                                    crew=None)

        response = self.client.get(reverse('bounties:index'),
                                   data={'pirate-search-field': 'Boa'})
        hancock_url = static('images/pirates/%s' % (hancock.filename(), ))
        marigold_url = static('images/pirates/%s' % (marigold.filename(), ))
        self.assertContains(response, hancock_url)
        self.assertContains(response, marigold_url)
 def test_view_redirects_to_profile_of_matching_pirate(self):
     luffy = factories.Pirate()
     alvida = factories.Pirate(name='Iron Mace Alvida',
                               bounty=None,
                               crew=None)
     response = self.client.get(reverse('bounties:index'),
                                data={'pirate-search-field': luffy.name})
     self.assertRedirects(
         response,
         reverse('bounties:get_pirate', kwargs={
             'pirate_id': luffy.id,
         }))
    def test_view_passes_correct_list_context_to_results_list_template(self):
        hancock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
        marigold = factories.Pirate(name='Boa Marigold',
                                    bounty=None,
                                    crew=None)
        response = self.client.get(reverse('bounties:index'),
                                   data={'pirate-search-field': 'Boa'})
        list_context = response.context['pirates']
        correct_results = Pirate.objects.filter(name__icontains='Boa')

        self.assertIn(hancock, list_context)
        self.assertIn(marigold, list_context)
        self.assertEqual(correct_results.count(), list_context.count())
Beispiel #10
0
    def test_should_not_include_pirates_not_matching_query(self):
        luffy = factories.Pirate()
        handcock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
        marigold = factories.Pirate(name='Boa Marigold',
                                    bounty=None,
                                    crew=None)
        response = self.client.get(reverse('bounties:index'),
                                   data={'pirate-search-field': 'Boa'})

        luffy_url = reverse('bounties:get_pirate',
                            kwargs={
                                'pirate_id': luffy.id,
                            })
        self.assertNotContains(response, '<a href="%s">' % (luffy_url, ))
Beispiel #11
0
    def test_shows_wanted_status_of_matching_pirates(self):
        crew = factories.Crew()
        luffy = factories.Pirate(name='Test Luffy',
                                 wanted_status=Pirate.DEAD_OR_ALIVE)
        sanji = factories.Pirate(name='Test Sanji',
                                 bounty=177000000,
                                 crew=crew,
                                 wanted_status=Pirate.ONLY_ALIVE)

        response = self.client.get(reverse('bounties:index'),
                                   data={'pirate-search-field': 'Test'})
        self.assertContains(response,
                            luffy.get_wanted_status_display().upper())
        self.assertContains(response,
                            sanji.get_wanted_status_display().upper())
    def test_view_passes_correct_context_to_template(self):
        luffy = factories.Pirate()
        alvida = factories.Pirate(name='Iron Mace Alvida',
                                  bounty=None,
                                  crew=None)
        shanks = factories.Pirate(name='Red-Haired Shanks',
                                  bounty=None,
                                  crew=None)

        response = self.client.get(reverse('bounties:index'))
        context = response.context['pirates']

        self.assertEqual(context.get(id=1), luffy)
        self.assertEqual(context.get(id=2), alvida)
        self.assertEqual(context.get(id=3), shanks)
 def test_should_return_wanted_status_string(self):
     crew = factories.Crew()
     pirate = factories.Pirate(crew=crew, wanted_status=Pirate.ONLY_ALIVE)
     result = Pirate.objects.first()
     status_choices_dict = dict(Pirate.STATUS_CHOICES)
     self.assertEqual(pirate.get_wanted_status_display(),
                      status_choices_dict.get(Pirate.ONLY_ALIVE))
Beispiel #14
0
    def test_shows_links_to_matching_pirates(self):
        hancock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
        marigold = factories.Pirate(name='Boa Marigold',
                                    bounty=None,
                                    crew=None)
        hancock_url = reverse('bounties:get_pirate',
                              kwargs={
                                  'pirate_id': hancock.id,
                              })
        marigold_url = reverse('bounties:get_pirate',
                               kwargs={
                                   'pirate_id': marigold.id,
                               })

        response = self.client.get(reverse('bounties:index'),
                                   data={'pirate-search-field': 'Boa'})
        self.assertContains(response, '<a href="%s">' % (hancock_url, ))
        self.assertContains(response, '<a href="%s">' % (marigold_url, ))
 def test_view_goes_to_index_if_no_matching_pirate(self):
     alvida = factories.Pirate(name='Iron Mace Alvida',
                               bounty=None,
                               crew=None)
     alvida.save()
     response = self.client.get(
         reverse('bounties:index'),
         data={'pirate-search-field': 'Monkey D. Luffy'})
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(response, 'index.html')
 def test_save_and_retrieve_wanted_status(self):
     crew = factories.Crew()
     pirate = factories.Pirate(crew=crew,
                               wanted_status=Pirate.DEAD_OR_ALIVE)
     result = Pirate.objects.first()
     self.assertEqual(pirate.wanted_status, result.wanted_status)
 def test_formatted_bounty_returns_None_if_no_bounty(self):
     pirate = factories.Pirate(bounty=None)
     self.assertIsNone(pirate.formatted_bounty())
 def test_returns_formatted_bounty_with_comma(self):
     pirate = factories.Pirate(bounty=500000000)
     formatted_bounty = '500,000,000'
     self.assertEqual(pirate.formatted_bounty(), formatted_bounty)
 def test_should_return_slugified_name_as_filename(self):
     pirate = factories.Pirate()
     correct_filename = slugify(pirate.name)
     self.assertEqual(pirate.filename(), correct_filename)
 def test_should_not_return_pirate_not_matching_query(self):
     luffy = factories.Pirate()
     hancock = factories.Pirate(name='Boa Hancock', bounty=None, crew=None)
     result = Pirate.objects.filter(name__icontains='Boa')
     self.assertEqual(result.count(), 1)
 def test_str_should_return_name(self):
     pirate = factories.Pirate(name='Sogeking')
     self.assertEqual(pirate.__str__(), pirate.name)
 def test_save_and_retrieve_pirate_with_crew(self):
     crew = factories.Crew()
     pirate = factories.Pirate(crew=crew)
     result = Pirate.objects.first()
     self.assertEqual(result.crew, crew)
 def test_save_and_retrieve_pirate_bounty_without_crew(self):
     pirate_with_bounty = factories.Pirate(crew=None)
     result = Pirate.objects.first()
     self.assertEqual(result.bounty, pirate_with_bounty.bounty)
Beispiel #24
0
 def setUp(self):
     self.browser = webdriver.Firefox()
     self.browser.implicitly_wait(3)
     strawhat = factories.Crew()
     alvida_crew = factories.Crew(name='Alvida Pirates')
     kuja = factories.Crew(name='Kuja Pirates')
     self.luffy = factories.Pirate(crew=strawhat)
     self.alvida = factories.Pirate(name='Iron Mace Alvida',
                                    crew=alvida_crew)
     factories.Pirate(name='God Usopp', bounty=200000000, crew=strawhat)
     factories.Pirate(name='Chopper', bounty=100, crew=strawhat)
     factories.Pirate(name='Roronoa Zoro', bounty=320000000, crew=strawhat)
     factories.Pirate(name='Sanji',
                      bounty=177000000,
                      crew=strawhat,
                      wanted_status=Pirate.ONLY_ALIVE)
     factories.Pirate(name='Nico Robin', bounty=130000000, crew=strawhat)
     factories.Pirate(name='Franky', bounty=94000000, crew=strawhat)
     factories.Pirate(name='Nami', bounty=66000000, crew=strawhat)
     factories.Pirate(name='Soul King', bounty=83000000, crew=strawhat)
     self.hancock = factories.Pirate(name='Boa Hancock',
                                     bounty=None,
                                     crew=kuja,
                                     wanted_status=None)
     self.sandersonia = factories.Pirate(name='Boa Sandersonia',
                                         bounty=None,
                                         crew=kuja,
                                         wanted_status=None)
     self.marigold = factories.Pirate(name='Boa Marigold',
                                      bounty=None,
                                      crew=kuja,
                                      wanted_status=None)
 def test_save_and_retrieve_pirate_without_bounty(self):
     pirate_no_bounty = factories.Pirate(bounty=None)
     result = Pirate.objects.first()
     self.assertEqual(result, pirate_no_bounty)