def test_put_url_should_return_200(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() post_data = { 'shortened': 'myanotherurl', } response = self.client.put( "/user/hugo/url/myurl", data=json.dumps(post_data), content_type='application/json; charset=utf-8' ) self.assertEquals(response.status_code, 200) content = json.loads(response.data) self.assertEquals('myanotherurl', content['shortened']) user.reload() self.assertEquals(user.urls.count(), 1) cache = Cache.redis.get('myurl:clicks') self.assertEquals(cache, None) cache = Cache.redis.get('myurl:original') self.assertEquals(cache, None) cache = Cache.redis.get('myanotherurl:clicks') self.assertNotEquals(cache, None) cache = Cache.redis.get('myanotherurl:original') self.assertNotEquals(cache, None)
def test_get_url_should_return_404_when_url_does_not_exist(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() response = self.client.get("/user/hugo/url/myanotherurl") self.assertEquals(response.status_code, 404)
def test_get_url_should_return_200_when_url_exist(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() response = self.client.get("/user/hugo/url/myurl") self.assertEquals(response.status_code, 200) self.assertIn('clicks', response.data)
def test_get_url_should_return_200_when_url_exist(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() response = self.client.get("/myurl") self.assertEquals(response.status_code, 301) self.assertEquals(Cache.redis.get('myurl:clicks'), '1')
def test_get_user_whith_url_should_show_clicks(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() response = self.client.get("/user/hugo") self.assertEquals(response.status_code, 200) self.assertIn('clicks', response.data)
def test_create_url_create_redis_entry(self): url = UrlFactory.build() self.user.urls.append(url) self.user.save() entry = Cache.redis.get("%s:clicks" % url.shortened) self.assertEquals(int(entry), 0) entry = Cache.redis.get("%s:original" % url.shortened) self.assertEquals(entry, url.original)
def test_delete_url_should_return_200_when_url_exist(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() response = self.client.delete("/user/hugo/url/myurl") self.assertEquals(response.status_code, 200) user.reload() self.assertEquals(user.urls.count(), 0) cache = Cache.redis.get('myurl:clicks') self.assertEquals(cache, None) cache = Cache.redis.get('myurl:original') self.assertEquals(cache, None)
def test_post_url_should_return_409_for_duplicated_shortened(self): user = UserFactory.build() url = UrlFactory.build() user.urls.append(url) user.save() post_data = { 'original': 'http://mysecondeurl.com', 'shortened': 'myurl' } response = self.client.post( "/user/hugo/url", data=json.dumps(post_data), content_type='application/json; charset=utf-8' ) self.assertEquals(response.status_code, 409) user.reload() self.assertEquals(user.urls.count(), 1)