def test_should_get_memes_following_a_meme(self): yql_mock = Mock() owner_guid = "123fooGUID" #this should be exactly the same query as the 'following' method yql_query = 'SELECT * FROM meme.following(%d) WHERE owner_guid = "%s"' % (1, owner_guid) query_result = Mock() query_result.rows = {'guid':'123', 'name':'some_name', 'title':'Cool Meme title', 'description':'Meme description', 'url':'http://meme.yahoo.com/some_name', 'avatar_url':'http://img.yahoo.com/avatar/123.jpg', 'language':'pt', 'followers':2} query_result.count = 1 when(yql_mock).execute(yql_query).thenReturn(query_result) repository = MemeRepository() repository.yql = yql_mock meme = repository.following(owner_guid, 1) assert meme.guid == '123' yql_query_following = 'SELECT * FROM meme.following(%d) WHERE owner_guid = "%s"' % (2, owner_guid) query_following_result = Mock() query_following_result.rows = [] query_following_result.rows.append({'guid':'456', 'name':'some_other_name', 'title':'Cool Meme title', 'description':'Meme description', 'url':'http://meme.yahoo.com/some_name', 'avatar_url':'http://img.yahoo.com/avatar/123.jpg', 'language':'pt', 'followers':10}) query_following_result.rows.append({'guid':'789', 'name':'some_other_creative_name', 'title':'Cool Meme title', 'description':'Meme description', 'url':'http://meme.yahoo.com/some_name', 'avatar_url':'http://img.yahoo.com/avatar/123.jpg', 'language':'pt', 'followers':20}) query_following_result.count = 2 when(yql_mock).execute(yql_query_following).thenReturn(query_following_result) repository = MemeRepository() repository.yql = yql_mock memes = repository.following(owner_guid, 2) assert len(memes) == 2 assert memes[0].guid == '456' assert memes[1].guid == '789'
def test_should_get_a_meme_following_a_meme(self): yql_query = 'SELECT * FROM meme.following(1) WHERE owner_guid = "123"' yql_mock = Mock() when(yql_mock).execute(yql_query).thenReturn(self.single_query_result) meme_repository = MemeRepository() meme_repository.yql = yql_mock memes = meme_repository.following(123, 1) assert len(memes) == 1 assert memes[0].guid == "123"
def test_should_get_two_memes_following_a_meme(self): yql_query = 'SELECT * FROM meme.following(2) WHERE owner_guid = "123"' yql_mock = Mock() when(yql_mock).execute(yql_query).thenReturn(self.multiple_query_result) meme_repository = MemeRepository() meme_repository.yql = yql_mock memes = meme_repository.following(123, 2) assert len(memes) == 2 assert memes[0].guid == "456" assert memes[1].guid == "789"
def test_should_get_memes_following_a_meme(self): yql_mock = Mock() yql_query = 'SELECT * FROM meme.info WHERE name = "some_name"' query_result = Mock() query_result.rows = {'guid':'123', 'name':'some_name', 'title':'Cool Meme title', 'description':'Meme description', 'url':'http://meme.yahoo.com/some_name', 'avatar_url':'http://img.yahoo.com/avatar/123.jpg', 'language':'pt', 'followers':2} query_result.count = 1 when(yql_mock).execute(yql_query).thenReturn(query_result) yql_query_following = 'SELECT * FROM meme.following(0,2) WHERE owner_guid = "123"' query_following_result = Mock() query_following_result.rows = [] query_following_result.rows.append({'guid':'456', 'name':'some_other_name', 'title':'Cool Meme title', 'description':'Meme description', 'url':'http://meme.yahoo.com/some_name', 'avatar_url':'http://img.yahoo.com/avatar/123.jpg', 'language':'pt', 'followers':10}) query_following_result.rows.append({'guid':'789', 'name':'some_other_creative_name', 'title':'Cool Meme title', 'description':'Meme description', 'url':'http://meme.yahoo.com/some_name', 'avatar_url':'http://img.yahoo.com/avatar/123.jpg', 'language':'pt', 'followers':20}) query_following_result.count = 2 when(yql_mock).execute(yql_query_following).thenReturn(query_following_result) repository = MemeRepository() repository.yql = yql_mock memes = repository.following('some_name', 2) assert len(memes) == 2 assert memes[0].guid == '456' assert memes[1].guid == '789'