Skip to content

Commit

Permalink
Split mocked test query, add docstring, syntax fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ferbncode committed Aug 17, 2017
1 parent 34eccb2 commit ee6d720
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 16 deletions.
Expand Up @@ -143,6 +143,7 @@ def browse_release_groups(*, artist_id, release_types=None, limit=None, offset=N

for release_group in release_groups:
includes_data[release_group.id]['meta'] = release_group.meta
release_groups = ([to_dict_release_groups(release_group, includes_data[release_group.id]) for release_group in release_groups], count)
release_groups = ([to_dict_release_groups(release_group, includes_data[release_group.id])
for release_group in release_groups], count)
cache.set(key=key, val=release_groups, time=DEFAULT_CACHE_EXPIRATION)
return release_groups
Expand Up @@ -11,14 +11,14 @@ def setUp(self):
setup_cache()
mb_release_group.mb_session = MagicMock()
self.mock_db = mb_release_group.mb_session.return_value.__enter__.return_value
self.release_group_query = self.mock_db.query.return_value.options.return_value.options.return_value.\
options.return_value.options.return_value.options.return_value.filter.return_value.all
self.release_group_query_without_artists = self.mock_db.query.return_value.\
options.return_value.options.return_value.filter.return_value.all

self._release_group_query = self.mock_db.query.return_value.options.return_value.options.return_value
self._release_group_query_with_artists = self._release_group_query.options.return_value.options.return_value.\
options.return_value
self.release_group_query = self._release_group_query.filter.return_value.all
self.release_group_query_with_artists = self._release_group_query_with_artists.filter.return_value.all

def test_get_by_id(self):
self.release_group_query.return_value = [releasegroup_numb_encore]
self.release_group_query_with_artists.return_value = [releasegroup_numb_encore]
release_group = mb_release_group.get_release_group_by_id(
'7c1014eb-454c-3867-8854-3c95d265f8de',
)
Expand Down Expand Up @@ -46,20 +46,21 @@ def test_get_by_id(self):
})

def test_fetch_release_groups(self):
self.release_group_query_without_artists.return_value = [releasegroup_numb_encore, releasegroup_collision_course]
self.release_group_query.return_value = [releasegroup_numb_encore, releasegroup_collision_course]
release_groups = mb_release_group.fetch_multiple_release_groups(
mbids=['8ef859e3-feb2-4dd1-93da-22b91280d768', '7c1014eb-454c-3867-8854-3c95d265f8de'],
)
self.assertEqual(len(release_groups), 2)
self.assertEqual(release_groups['7c1014eb-454c-3867-8854-3c95d265f8de']['title'], 'Numb/Encore')
self.assertEqual(release_groups['8ef859e3-feb2-4dd1-93da-22b91280d768']['title'], 'Collision Course')


def test_fetch_browse_release_groups(self):
self.browse_release_groups_query = self.mock_db.query.return_value.options.return_value.join.return_value.\
join.return_value.join.return_value.join.return_value.filter.return_value.filter.return_value
self.browse_release_groups_query_count = self.browse_release_groups_query.count
self.browse_release_groups_query = self.browse_release_groups_query.order_by.return_value.limit.return_value.offset
self._query = self.mock_db.query.return_value.options.return_value
self._joined_query = self._query.join.return_value.join.return_value.join.return_value.join.return_value
self._joined_filtered_query = self._joined_query.filter.return_value.filter.return_value
self.browse_release_groups_query_count = self._joined_filtered_query.count
self.browse_release_groups_query = self._joined_filtered_query.order_by.return_value.limit.return_value.offset

self.browse_release_groups_query_count.return_value = 2
self.browse_release_groups_query.return_value = [releasegroup_collision_course, releasegroup_numb_encore]
release_groups = mb_release_group.browse_release_groups(
Expand Down
9 changes: 9 additions & 0 deletions critiquebrainz/frontend/views/artist.py
Expand Up @@ -98,6 +98,15 @@ def _squash_duplicated_members(members):


def _get_period(member):
"""Get period for which an artist is/was part of a group, orchestra or choir.
Args:
member (Dict): Dictionary containing the artist information.
Returns:
Tuple containing the begin and end year during which an artist was part of
a group.
"""
begin_date = member.get('begin-year', '')
end_date = member.get('end-year', '')

Expand Down
4 changes: 1 addition & 3 deletions critiquebrainz/frontend/views/test/test_artist.py
Expand Up @@ -24,18 +24,16 @@ def return_release_groups(*, artist_id, release_types=None, limit=None, offset=N
'title': 'A Thousand Suns',
'first-release-year': 2010,
}], 1)
return ([], 0)
return [], 0


class ArtistViewsTestCase(FrontendTestCase):


def setUp(self):
super(ArtistViewsTestCase, self).setUp()
mb_artist.get_artist_by_id = MagicMock()
mb_release_group.browse_release_groups = MagicMock(side_effect=return_release_groups)


def test_artist_page(self):
# Basic artist page should be available.
mb_artist.get_artist_by_id.return_value = {
Expand Down

0 comments on commit ee6d720

Please sign in to comment.