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
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'])
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
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
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
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
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
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
def test_store_owner_can_list(self, store_owner_client): r = store_owner_client.get(self.reverse()) h.responseOk(r)
def test_hunter_can_list(self, hunter_client): r = hunter_client.get(self.reverse()) h.responseOk(r)
def test_guest_can_list(self, client): r = client.get(self.reverse()) h.responseOk(r)
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)
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)
def test_as_user(self, client): user = f.UserFactory() client.force_authenticate(user) r = client.get(self.reverse()) h.responseOk(r)
def test_hunter_can_retrieve(self, hunter_client): store = f.StoreFactory() r = hunter_client.get(self.reverse(kwargs={'pk': store.pk})) h.responseOk(r)
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)
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
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
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'}