예제 #1
0
 def test_doesnt_explode_if_bad_coords(self, hunter_client, client):
     f.StoreFactory()
     f.StoreFactory()
     f.StoreFactory()
     r = hunter_client.get(self.reverse(query_params={'coords': 'asd'}))
     h.responseOk(r)
     assert r.data['count'] == 3
예제 #2
0
 def test_password_is_set(self, client, data):
     user = f.UserFactory(password=data['current_password'])
     client.force_authenticate(user)
     r = client.post(self.reverse(), data)
     h.responseOk(r)
     user.refresh_from_db()
     assert user.check_password(data['new_password'])
예제 #3
0
 def test_photo_object_keys(self, hunter_client):
     store = f.StoreFactory()
     r = hunter_client.get(self.reverse(kwargs={'pk': store.pk}))
     h.responseOk(r)
     expected = {'url'}
     actual = set(r.data['photo'].keys())
     assert expected == actual
예제 #4
0
 def test_object_keys(self, hunter_client):
     store = f.StoreFactory()
     r = hunter_client.get(self.reverse(kwargs={'pk': store.pk}))
     h.responseOk(r)
     expected = {'id', 'name', 'category', 'address', 'photo', 'website', 'tagline',
                 'distance', 'bounty'}
     actual = set(r.data.keys())
     assert expected == actual
예제 #5
0
 def test_address_object_keys(self, hunter_client):
     store = f.StoreFactory()
     f.StoreAddressFactory(store=store)
     r = hunter_client.get(self.reverse(kwargs={'pk': store.pk}))
     h.responseOk(r)
     expected = {'line1', 'line2', 'line3', 'zip_code', 'city', 'state', 'country', 'coords'}
     actual = set(r.data['address'].keys())
     assert expected == actual
예제 #6
0
 def test_address_coords_object_keys(self, hunter_client):
     store = f.StoreFactory()
     f.StoreAddressFactory(store=store)
     r = hunter_client.get(self.reverse(kwargs={'pk': store.pk}))
     h.responseOk(r)
     expected = {'lat', 'long'}
     actual = set(r.data['address']['coords'].keys())
     assert expected == actual
예제 #7
0
 def test_it(self, parent_client):
     kid = f.KidFactory()
     card = f.CardFactory(owner=kid)
     f.CardFactory()
     r = parent_client.get(self.reverse(kwargs={'pk': kid.pk}))
     h.responseOk(r)
     assert r.data['count'] == 1
     assert r.data['results'][0]['id'] == card.pk
예제 #8
0
 def test_sorts_by_distance_when_coords_are_provided(self, hunter_client, client):
     farthest = f.StoreFactory(address=True, address__coords=Point(200, 200))
     closest = f.StoreFactory(address=True, address__coords=Point(51, 51))
     medium = f.StoreFactory(address=True, address__coords=Point(100, 100))
     r = hunter_client.get(self.reverse(query_params={'coords': '50,50'}))
     h.responseOk(r)
     assert r.data['count'] == 3
     results = r.data['results']
     assert results[0]['id'] == closest.pk
     assert results[1]['id'] == medium.pk
     assert results[2]['id'] == farthest.pk
예제 #9
0
 def test_store_owner_can_list(self, store_owner_client):
     r = store_owner_client.get(self.reverse())
     h.responseOk(r)
예제 #10
0
 def test_hunter_can_list(self, hunter_client):
     r = hunter_client.get(self.reverse())
     h.responseOk(r)
예제 #11
0
 def test_guest_can_list(self, client):
     r = client.get(self.reverse())
     h.responseOk(r)
예제 #12
0
 def test_store_owner_can_retrieve(self, store_owner_client):
     category = f.StoreCategoryFactory()
     r = store_owner_client.get(self.reverse(kwargs={'pk': category.pk}))
     h.responseOk(r)
예제 #13
0
 def test_category_is_expandable(self, hunter_client):
     store = f.StoreFactory()
     r = hunter_client.get(self.reverse(kwargs={'pk': store.pk}, query_params={'expand': 'category'}))
     h.responseOk(r)
     assert isinstance(r.data['category'], dict)
예제 #14
0
 def test_as_user(self, client):
     user = f.UserFactory()
     client.force_authenticate(user)
     r = client.get(self.reverse())
     h.responseOk(r)
예제 #15
0
 def test_hunter_can_retrieve(self, hunter_client):
     store = f.StoreFactory()
     r = hunter_client.get(self.reverse(kwargs={'pk': store.pk}))
     h.responseOk(r)
예제 #16
0
 def test_user_can_change_password(self, client, data):
     user = f.UserFactory(password=data['current_password'])
     client.force_authenticate(user)
     r = client.post(self.reverse(), data)
     h.responseOk(r)
예제 #17
0
 def test_includes_distance_field_on_results(self, hunter_client, client):
     f.StoreFactory(address=True, address__coords=Point(100, 100))
     r = hunter_client.get(self.reverse(query_params={'coords': '50,50'}))
     h.responseOk(r)
     results = r.data['results']
     assert results[0]['distance'] is not None
예제 #18
0
 def test_coords_can_be_negative(self, hunter_client, client):
     f.StoreFactory(address=True, address__coords=Point(100, 100))
     r = hunter_client.get(self.reverse(query_params={'coords': '-50,-50'}))
     h.responseOk(r)
     results = r.data['results']
     assert results[0]['distance'] is not None
예제 #19
0
 def test_can_login(self, client):
     data = {'email': '*****@*****.**', 'password': '******'}
     f.UserFactory(email=data['email'], password=data['password'])
     r = client.post(self.reverse(), data)
     h.responseOk(r)
     assert set(r.data.keys()) == {'token'}