def test_get_results_serializer_filters(self, mock_process, mock_add_repo, mock_ctrl): """ Get results, ensure that filters are translated. """ m_serial = mock_ctrl.get_model_serializer_for_type.return_value content_search = ContentUnitSearch() mock_query = {'filters': {'mock': 'filters'}} mock_search = mock.MagicMock(return_value=['result_1', 'result_2']) serialized_results = content_search.get_results( mock_query, mock_search, {'include_repos': True}, type_id='mock_type') m_serial.translate_filters.assert_called_once_with( m_serial.model, {'mock': 'filters'}) self.assertEqual(m_serial.translate_filters.call_count, 1) mock_process.assert_has_calls([ mock.call('result_1', 'mock_type'), mock.call('result_2', 'mock_type') ]) self.assertEqual( serialized_results, [mock_process.return_value, mock_process.return_value]) mock_add_repo.assert_called_once_with( [mock_process(), mock_process()], 'mock_type')
def test_get_results_without_repos(self, mock_process, mock_add_repo): """ Get results without the optional `include_repos`. """ content_search = ContentUnitSearch() mock_query = mock.MagicMock() mock_search = mock.MagicMock(return_value=['result_1', 'result_2']) serialized_results = content_search.get_results(mock_query, mock_search, {}, type_id='mock_type') mock_process.assert_has_calls([mock.call('result_1', 'mock_type'), mock.call('result_2', 'mock_type')]) self.assertEqual(serialized_results, [mock_process.return_value, mock_process.return_value]) self.assertEqual(mock_add_repo.call_count, 0)
def test_get_results_serializer_no_filters(self, mock_process, mock_add_repo, mock_ctrl): """ Get results, ensure that if the query does not have filters, they are not translated. """ m_serializer = mock_ctrl.get_model_serializer_for_type.return_value content_search = ContentUnitSearch() mock_query = {} mock_search = mock.MagicMock(return_value=['result_1', 'result_2']) serialized_results = content_search.get_results( mock_query, mock_search, {'include_repos': True}, type_id='mock_type' ) self.assertEqual(m_serializer.translate_filters.call_count, 0) mock_process.assert_has_calls([mock.call('result_1', 'mock_type'), mock.call('result_2', 'mock_type')]) self.assertEqual(serialized_results, [mock_process.return_value, mock_process.return_value]) mock_add_repo.assert_called_once_with([mock_process(), mock_process()], 'mock_type')
def test_add_repo_memberships_empty(self, mock_crit, mock_factory): """ Make sure it doesn't do a search for associations if there are no units found """ mock_find = mock_factory.repo_unit_association_query_manager().find_by_criteria ContentUnitSearch()._add_repo_memberships([], 'rpm') self.assertEqual(mock_find.call_count, 0)
def test_add_repo_memberships_(self, mock_factory): """ Ensure that _add_repo_memberships adds a list of repos for the the units. """ mock_find = mock_factory.repo_unit_association_query_manager().find_by_criteria mock_find.return_value = [{'repo_id': 'repo1', 'unit_id': 'unit1'}] units = [{'_id': 'unit1'}] ret = ContentUnitSearch()._add_repo_memberships(units, 'rpm') self.assertEqual(mock_find.call_count, 1) self.assertEqual(len(ret), 1) self.assertEqual(ret[0].get('repository_memberships'), ['repo1'])
ContentSourceCollectionView.as_view(), name='content_sources'), url(r'^v2/content/sources/action/(?P<action>[^/]+)/$', ContentSourceCollectionActionView.as_view(), name='content_sources_action'), url(r'^v2/content/sources/(?P<source_id>[^/]+)/action/(?P<action>[^/]+)/$', ContentSourceResourceActionView.as_view(), name='content_sources_resource_action'), url(r'^v2/content/sources/(?P<source_id>[^/]+)/$', ContentSourceResourceView.as_view(), name='content_sources_resource'), url(r'^v2/content/units/(?P<type_id>[^/]+)/$', ContentUnitsCollectionView.as_view(), name='content_units_collection'), url(r'^v2/content/units/(?P<type_id>[^/]+)/search/$', ContentUnitSearch.as_view(), name='content_unit_search'), url(r'^v2/content/units/(?P<type_id>[^/]+)/(?P<unit_id>[^/]+)/$', ContentUnitResourceView.as_view(), name='content_unit_resource'), url(r'^v2/content/units/(?P<type_id>[^/]+)/(?P<unit_id>[^/]+)/pulp_user_metadata/$', ContentUnitUserMetadataResourceView.as_view(), name='content_unit_user_metadata_resource'), url(r'^v2/content/uploads/$', UploadsCollectionView.as_view(), name='content_uploads'), url(r'^v2/content/uploads/(?P<upload_id>[^/]+)/$', UploadResourceView.as_view(), name='content_upload_resource'), url(r'^v2/content/uploads/(?P<upload_id>[^/]+)/(?P<offset>[^/]+)/$', UploadSegmentResourceView.as_view(),
name='content_orphan_type_subcollection'), url(r'^v2/content/orphans/(?P<content_type>[^/]+)/(?P<unit_id>[^/]+)/$', OrphanResourceView.as_view(), name='content_orphan_resource'), url(r'^v2/content/sources/$', ContentSourceCollectionView.as_view(), name='content_sources'), url(r'^v2/content/sources/action/(?P<action>[^/]+)/$', ContentSourceCollectionActionView.as_view(), name='content_sources_action'), url(r'^v2/content/sources/(?P<source_id>[^/]+)/action/(?P<action>[^/]+)/$', ContentSourceResourceActionView.as_view(), name='content_sources_resource_action'), url(r'^v2/content/sources/(?P<source_id>[^/]+)/$', ContentSourceResourceView.as_view(), name='content_sources_resource'), url(r'^v2/content/units/(?P<type_id>[^/]+)/$', ContentUnitsCollectionView.as_view(), name='content_units_collection'), url(r'^v2/content/units/(?P<type_id>[^/]+)/search/$', ContentUnitSearch.as_view(), name='content_unit_search'), url(r'^v2/content/units/(?P<type_id>[^/]+)/(?P<unit_id>[^/]+)/$', ContentUnitResourceView.as_view(), name='content_unit_resource'), url(r'^v2/content/units/(?P<type_id>[^/]+)/(?P<unit_id>[^/]+)/pulp_user_metadata/$', ContentUnitUserMetadataResourceView.as_view(), name='content_unit_user_metadata_resource'), url(r'^v2/content/uploads/$', UploadsCollectionView.as_view(), name='content_uploads'), url(r'^v2/content/uploads/(?P<upload_id>[^/]+)/$', UploadResourceView.as_view(), name='content_upload_resource'), url(r'^v2/content/uploads/(?P<upload_id>[^/]+)/(?P<offset>[^/]+)/$', UploadSegmentResourceView.as_view(), name='content_upload_segment_resource'), url(r'^v2/distributors/search/$', RepoDistributorsSearchView.as_view(), name='distributor_search'), url(r'^v2/events/$', EventView.as_view(), name='events'), url(r'^v2/events/(?P<event_listener_id>[^/]+)/$', EventResourceView.as_view(), name='event_resource'), url(r'^v2/permissions/$', PermissionView.as_view(), name='permissions'),