def test_should_get_meme_by_name(self):
        yql_query = 'SELECT * FROM meme.info WHERE name = "some_name"'
        yql_mock = Mock()
        when(yql_mock).execute(yql_query).thenReturn(self.single_query_result)

        meme_repository = MemeRepository()
        meme_repository.yql = yql_mock
        meme = meme_repository.get("some_name")
        assert meme.guid == "123"
Beispiel #2
0
 def test_should_get_meme_by_guid(self):
     yql_query = 'SELECT * FROM meme.info 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
     meme = meme_repository.get_by_guid('123')
     assert meme.name == 'john'
    def test_should_get_one_meme_follower(self):
        yql_query = 'SELECT * FROM meme.followers(1) WHERE owner_guid = "123fooGUID"'
        yql_mock = Mock()
        when(yql_mock).execute(yql_query).thenReturn(self.single_query_result)

        meme_repository = MemeRepository()
        meme_repository.yql = yql_mock
        meme = meme_repository.followers("123fooGUID", 1)
        assert len(meme) == 1
        assert meme[0].guid == "123"
    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_meme_followers(self):
        yql_query = 'SELECT * FROM meme.followers(2) WHERE owner_guid = "123fooGUID"'
        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.followers("123fooGUID", 2)
        assert len(memes) == 2
        assert memes[0].guid == "456"
        assert memes[1].guid == "789"
Beispiel #6
0
    def test_should_raise_meme_not_found_error(self):
        yql_mock = Mock()
        yql_query = 'SELECT * FROM meme.info WHERE name = "some_name"'
        query_result = Mock()
        query_result.rows = []
        query_result.count = 0
        when(yql_mock).execute(yql_query).thenReturn(query_result)

        repository = MemeRepository()
        repository.yql = yql_mock

        self.assertRaises(MemeNotFound, repository.get, ('some_name',))
Beispiel #7
0
    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_raise_meme_not_found_error_when_search_cannot_find_memes(self):
        yql_query = 'SELECT * FROM meme.people(10) WHERE query = "some_name"'

        query_result = Mock()
        query_result.rows = []
        query_result.count = 0

        yql_mock = Mock()
        when(yql_mock).execute(yql_query).thenReturn(query_result)

        meme_repository = MemeRepository()
        meme_repository.yql = yql_mock

        self.assertRaises(MemeNotFound, meme_repository.search, "some_name", 10)
Beispiel #9
0
 def test_should_get_meme_by_name(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':5}
     query_result.count = 1
     when(yql_mock).execute(yql_query).thenReturn(query_result)
     
     repository = MemeRepository()
     repository.yql = yql_mock
     
     meme = repository.get('some_name')
     assert meme.guid == '123'
    def test_should_search_memes(self):
        yql_query = 'SELECT * FROM meme.people(1) WHERE query = "foobar"'

        query_result = Mock()
        query_result.rows = fixtures.get_meme("fred")
        query_result.count = 1

        yql_mock = Mock()
        when(yql_mock).execute(yql_query).thenReturn(query_result)

        meme_repository = MemeRepository()
        meme_repository.yql = yql_mock

        memes = meme_repository.search("foobar", 1)
        assert len(memes) == 1
        assert memes[0].guid == "024"
        assert memes[0].title == "Search Fred"
        assert memes[0].follower_count == 20
Beispiel #11
0
    def test_should_get_meme_followers(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.followers(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.followers('some_name', count=2, offset=0)
        assert len(memes) == 2
        assert memes[0].guid == '456'
        assert memes[1].guid == '789'
Beispiel #12
0
    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'