Beispiel #1
0
 def test_create_update_read__delete_search(self):
     test_ad = TestAdFactory.create()
     # here we build a search ad form
     # create
     location = "SRID%3D900913%3BPOLYGON((2.3886182861327825+48.834761790252024%2C2.2773817138671575+48.837925498723266%2C2.3251035766601262+48.87180983721773%2C2.4023511962890325+48.87293892019383%2C2.3886182861327825+48.834761790252024))"
     request = self.factory.post('/', data={'search': 'brand=' + test_ad.brand + '&location=' + location})
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request)
     ad_search = AdSearch.objects.all().filter(user=user)[0]
     # update
     request = self.factory.post('/', data={'search': 'brand=' + test_ad.brand})
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request, search_id=ad_search.pk)
     # read
     request = self.factory.get('/')
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request, search_id=ad_search.pk)
     not_ad_search_owner_user = UserFactory.create()
     request = self.factory.get('/')
     request.user = not_ad_search_owner_user
     view = views.AdSearchView.as_view(model=TestAd)
     self.assertRaises(Http404, view, request, search_id=ad_search.pk)
     # delete
     request = self.factory.get('/')
     # by non authorized user
     request.user = not_ad_search_owner_user
     view = views.AdSearchDeleteView.as_view()
     self.assertRaises(Http404, view, request, pk=ad_search.pk)
     # by authorized user (owner of ad search)
     request = self.factory.post('/')
     request.user = ad_search.user
     response = views.AdSearchDeleteView.as_view()(request, pk=ad_search.pk)
Beispiel #2
0
 def test_create(self):
     # get form
     request = self.factory.get('/')
     user = UserFactory.create()
     request.user = user
     response = views.AdCreateView.as_view(model=TestAd,
                                           form_class=TestAdForm)(request)
     # valid
     form_data = {
         'brand': 'my_guitar',
         'user_entered_address': '5 rue de Verneuil, Paris',
         'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
         'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0
     }
     request = self.factory.post('/', data=form_data, files=[])
     user = UserFactory.create()
     request.user = user
     response = views.AdCreateView.as_view(model=TestAd,
                                           form_class=TestAdForm)(request)
     # invalid
     form_data = {
         'brand': 'my_guitar',
         'user_entered_address': 'fkjfkjfkjfkj',
         'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
         'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0
     }
     request = self.factory.post('/', data=form_data, files=[])
     user = UserFactory.create()
     request.user = user
     response = views.AdCreateView.as_view(model=TestAd,
                                           form_class=TestAdForm)(request)
     self.assertEqual(
         response.context_data['form'].errors['user_entered_address'],
         [u'Indiquer une adresse valide.'])
Beispiel #3
0
 def test_filterads(self):
     # Filter without results
     request = self.factory.get('/', data={'brand': 'nobrand'})
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd,
                                           no_results_msg="no",
                                           results_msg="yes")(request)
     # Be sure that no is in messages
     self.assertTrue('no' in [i.message for i in request._messages])
     # Filter with results
     test_ads = TestAdFactory.create_batch(12)
     # client try to filter search
     # and get at lead one result
     request = self.factory.get('/', data={'brand': test_ads[0].brand})
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd,
                                           no_results_msg="no",
                                           results_msg="yes")(request)
     # Be sure that yes is in messages
     self.assertTrue('yes' in [i.message for i in request._messages])
     # check that we don't return initial ads
     self.assertTrue('initial_ads' not in response.context_data)
     # check that the user have a form to save it search
     self.assertTrue('ad_search_form' in response.context_data)
     # or get 0 results
     request = self.factory.get('/', data={'brand': 'nologo'})
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request)
Beispiel #4
0
 def test_create(self):
     # get form
     request = self.factory.get('/')
     user = UserFactory.create()
     request.user = user
     response = views.AdCreateView.as_view(model=TestAd, form_class=TestAdForm)(request)
     # valid
     form_data = {'brand': 'my_guitar',
         'user_entered_address': '5 rue de Vernueil, Paris',
         'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
         'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0}
     request = self.factory.post('/', data=form_data, files=[])
     user = UserFactory.create()
     request.user = user
     response = views.AdCreateView.as_view(model=TestAd, form_class=TestAdForm)(request)
     # invalid
     form_data = {'brand': 'my_guitar',
         'user_entered_address': 'fkjfkjfkjfkj',
         'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
         'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0}
     request = self.factory.post('/', data=form_data, files=[])
     user = UserFactory.create()
     request.user = user
     response = views.AdCreateView.as_view(model=TestAd, form_class=TestAdForm)(request)
     self.assertEqual(response.context_data['form'].errors['user_entered_address'], [u'Indiquer une adresse valide.'])
Beispiel #5
0
 def test_filterads(self):
     # Filter without results
     request = self.factory.get('/', data={'brand': 'nobrand'})
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd, no_results_msg="no", results_msg="yes")(request)
     # Be sure that no is in messages 
     self.assertTrue('no' in [i.message for i in request._messages])
     # Filter with results
     test_ads = TestAdFactory.create_batch(12)
     # client try to filter search
     # and get at lead one result
     request = self.factory.get('/', data={'brand': test_ads[0].brand})
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd, no_results_msg="no", results_msg="yes")(request)
     # Be sure that yes is in messages 
     self.assertTrue('yes' in [i.message for i in request._messages])
     # check that we don't return initial ads
     self.assertTrue('initial_ads' not in response.context_data)
     # check that the user have a form to save it search
     self.assertTrue('ad_search_form' in response.context_data)
     # or get 0 results
     request = self.factory.get('/', data={'brand': 'nologo'})
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request)
Beispiel #6
0
 def test_send_message(self):
     with mock_signal_receiver(geoad_user_message) as user_message:
         test_ad = TestAdFactory.create()
         user = UserFactory.create()
         request = self.factory.post('/', data={'message': 'Hi buddy !'})
         request.user = user
         response = views.AdDetailView.as_view(model=TestAd)(request, pk=test_ad.pk)
         # verify mail is sent
         self.assertEquals(user_message.call_count, 1)
Beispiel #7
0
 def test_send_message(self):
     with mock_signal_receiver(geoad_user_message) as user_message:
         test_ad = TestAdFactory.create()
         user = UserFactory.create()
         request = self.factory.post('/', data={'message': 'Hi buddy !'})
         request.user = user
         response = views.AdDetailView.as_view(model=TestAd)(request,
                                                             pk=test_ad.pk)
         # verify mail is sent
         self.assertEquals(user_message.call_count, 1)
Beispiel #8
0
 def test_create_update_read_delete_search(self):
     test_ad = TestAdFactory.create()
     # here we build a search ad form
     # create
     location = "SRID%3D900913%3BPOLYGON((2.3886182861327825+48.834761790252024%2C2.2773817138671575+48.837925498723266%2C2.3251035766601262+48.87180983721773%2C2.4023511962890325+48.87293892019383%2C2.3886182861327825+48.834761790252024))"
     request = self.factory.post('/',
                                 data={
                                     'search':
                                     'brand=' + test_ad.brand +
                                     '&location=' + location
                                 })
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request)
     ad_search = AdSearch.objects.all().filter(user=user)[0]
     # update
     request = self.factory.post('/',
                                 data={'search': 'brand=' + test_ad.brand})
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(
         request, search_id=ad_search.pk)
     # read
     request = self.factory.get('/')
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(
         request, search_id=ad_search.pk)
     not_ad_search_owner_user = UserFactory.create()
     request = self.factory.get('/')
     request.user = not_ad_search_owner_user
     view = views.AdSearchView.as_view(model=TestAd)
     self.assertRaises(Http404, view, request, search_id=ad_search.pk)
     # delete
     request = self.factory.get('/')
     # by non authorized user
     request.user = not_ad_search_owner_user
     view = views.AdSearchDeleteView.as_view()
     self.assertRaises(Http404, view, request, pk=ad_search.pk)
     # by authorized user (owner of ad search)
     request = self.factory.post('/')
     request.user = ad_search.user
     response = views.AdSearchDeleteView.as_view()(request, pk=ad_search.pk)
Beispiel #9
0
 def test_not_owner_delete(self):
     # create a user, and an ad, and test if the user
     # who is not the ad owner can't delete it
     test_ad = TestAdFactory.create()
     user = UserFactory.create()
     request = self.factory.get('/')
     request.user = user
     view = views.AdDeleteView.as_view(model=TestAd)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
     request = self.factory.post('/')
     request.user = user
     view = views.AdDeleteView.as_view(model=TestAd)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
Beispiel #10
0
 def test_not_owner_delete(self):
     # Create a user and an ad
     # Test if the user who is not the ad owner can't delete it
     test_ad = TestAdFactory.create()
     user = UserFactory.create()
     request = self.factory.get('/')
     request.user = user
     view = views.AdDeleteView.as_view(model=TestAd)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
     request = self.factory.post('/')
     request.user = user
     view = views.AdDeleteView.as_view(model=TestAd)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
     self.assertTrue(test_ad in TestAd.objects.all())
Beispiel #11
0
 def test_filterads(self):
     test_ads = TestAdFactory.create_batch(12)
     # client try to filter search
     # and get at lead one result
     request = self.factory.get('/', data={'brand': test_ads[0].brand})
     user = UserFactory.create()
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request)
     # check that we don't return initial ads
     self.assertTrue('initial_ads' not in response.context_data)
     # check that the user have a form to save it search
     self.assertTrue('ad_search_form' in response.context_data)
     # or get 0 results
     request = self.factory.get('/', data={'brand': 'nologo'})
     request.user = user
     response = views.AdSearchView.as_view(model=TestAd)(request)
Beispiel #12
0
 def test_ad_update(self):
     self.factory = RequestFactory()
     test_ad = TestModeratedAdFactory.create()
     request = self.factory.get('/')
     # When user is the ad owner
     request.user = test_ad.user
     response = ModeratedAdUpdateView.as_view(model=TestModeratedAd,
                                              form_class=TestAdForm)(
                                                  request, pk=test_ad.pk)
     self.assertEqual(response.status_code, 200)
     # When user is not the ad owner
     other_user = UserFactory()
     request.user = other_user
     view = ModeratedAdUpdateView.as_view(model=TestModeratedAd,
                                          form_class=TestAdForm)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
Beispiel #13
0
 def test_not_owner_update(self):
     test_ad = TestAdFactory.create()
     user = UserFactory.create()
     form_data = {
         'brand': test_ad.brand,
         'location': test_ad.location,
         'user_entered_address': test_ad.user_entered_address,
         'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
         'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0}
     request = self.factory.get('/')
     request.user = user
     view = views.AdUpdateView.as_view(model=TestAd, form_class=TestAdForm)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
     request = self.factory.post('/', data=form_data)
     request.user = user
     view = views.AdUpdateView.as_view(model=TestAd, form_class=TestAdForm)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
Beispiel #14
0
    def test_create_same_slug(self):
        user = UserFactory.create()
        form_data = {'brand': 'my_guitar',
            'user_entered_address': '5 rue de Vernueil, Paris',
            'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
            'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0}
        request = self.factory.post('/', data=form_data, files=[])
        request.user = user
        response = views.AdCreateView.as_view(model=TestAd, form_class=TestAdForm)(request)

        form_data = {'brand': 'my_guitar',
            'user_entered_address': '5 rue de Vernueil, Paris',
            'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
            'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0}
        request = self.factory.post('/', data=form_data, files=[])
        request.user = user
        response = views.AdCreateView.as_view(model=TestAd, form_class=TestAdForm)(request)
Beispiel #15
0
 def test_not_owner_update(self):
     test_ad = TestAdFactory.create()
     user = UserFactory.create()
     form_data = {
         'brand': test_ad.brand,
         'location': test_ad.location,
         'user_entered_address': test_ad.user_entered_address,
         'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
         'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0
     }
     request = self.factory.get('/')
     request.user = user
     view = views.AdUpdateView.as_view(model=TestAd, form_class=TestAdForm)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
     request = self.factory.post('/', data=form_data)
     request.user = user
     view = views.AdUpdateView.as_view(model=TestAd, form_class=TestAdForm)
     self.assertRaises(Http404, view, request, pk=test_ad.pk)
Beispiel #16
0
    def test_create_same_slug(self):
        user = UserFactory.create()
        form_data = {
            'brand': 'my_guitar',
            'user_entered_address': '5 rue de Verneuil, Paris',
            'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
            'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0
        }
        request = self.factory.post('/', data=form_data, files=[])
        request.user = user
        response = views.AdCreateView.as_view(model=TestAd,
                                              form_class=TestAdForm)(request)

        form_data = {
            'brand': 'my_guitar',
            'user_entered_address': '5 rue de Verneuil, Paris',
            'geoads-adpicture-content_type-object_id-TOTAL_FORMS': 4,
            'geoads-adpicture-content_type-object_id-INITIAL_FORMS': 0
        }
        request = self.factory.post('/', data=form_data, files=[])
        request.user = user
        response = views.AdCreateView.as_view(model=TestAd,
                                              form_class=TestAdForm)(request)
Beispiel #17
0
 def test_send_message(self):
     test_ad = TestAdFactory.create()
     user = UserFactory.create()
     request = self.factory.post('/', data={'message':'Hi buddy !'})
     request.user = user
     response = views.AdDetailView.as_view(model=TestAd)(request, pk=test_ad.pk)