def test_changelist_view(self): DataCenterAssetFullFactory.create_batch(5) VirtualServerFullFactory.create_batch(5) CloudHostFullFactory.create_batch(4) ClusterFactory.create_batch(4) with self.assertNumQueries(19): result = self.client.get( reverse('admin:data_center_dchost_changelist'), ) # DCAssets - 5 # VirtualServer + hypervisors - 10 # Cluster - 4 # CloudHost + hypervisors - 8 self.assertEqual(result.context_data['cl'].result_count, 27)
def test_filtering_queryset_with_additional_filters(self): service_env_a = ServiceEnvironmentFactory(service__name='ServiceA') DataCenterAssetFullFactory.create_batch(2, service_env=service_env_a, scmstatuscheck=None) DataCenterAssetFullFactory.create_batch( 3, service_env=service_env_a, scmstatuscheck__check_result=SCMCheckResult.scm_error) DataCenterAssetFullFactory.create_batch(4, service_env=service_env_a, scmstatuscheck__ok=True) DataCenterAssetFullFactory.create_batch( 1, service_env__service__name='ServiceB', ) DataCenterAssetFullFactory.create_batch( 3, service_env__service__name='ServiceC', ) ServiceEnvironmentFactory.create(service__name='ServiceD') graph = GraphFactory( aggregate_type=AggregateType.aggregate_sum_bool_negated_values.id, params={ 'series': 'id', 'labels': 'service__name', 'target': { 'model': 'DataCenterAsset', 'filter': 'service_env__service__name__in', 'value': 'service__name', 'additional_filters': { 'scmstatuscheck__ok': False }, } }, model=ContentType.objects.get_for_model(ServiceEnvironment), ) dca_qs = DataCenterAsset.objects.all() filtered_qs = graph.get_queryset_for_filter( dca_qs, {'service__name': 'ServiceA'}) self.assertEqual(filtered_qs.count(), 3) self.assertEqual( list( filtered_qs.values_list('service_env__service__name', 'scmstatuscheck__ok')), [('ServiceA', False)] * 3)
def test_key_sort_sorts_records_descending_when_minus_present(self): self.data_center_assets = DataCenterAssetFullFactory.create_batch(10) graph = GraphFactory( params=self._get_graph_params({'sort': '-barcode'}) ) qs = graph.build_queryset() self.assertTrue(qs.first()['barcode'] > qs.last()['barcode'])
def _init(self, num=10): self.data_center_assets = DataCenterAssetFullFactory.create_batch(num) self.data_center_assets_map = {} for i, dca in enumerate(self.data_center_assets, start=num * 2): dca.parent = DataCenterAssetFullFactory() dca.parent.management_ip = '10.20.30.{}'.format(i) dca.save() self.data_center_assets_map[dca.id] = dca self.data_center_assets_map[dca.parent.id] = dca.parent
def test_key_limit_limits_records_when_present(self): limit = 5 self.data_center_assets = DataCenterAssetFullFactory.create_batch( 2 * limit ) graph = GraphFactory(params=self._get_graph_params({'limit': limit})) qs = graph.build_queryset() self.assertEqual(qs.count(), limit)
def test_filtering_queryset(self): DataCenterAssetFullFactory.create_batch( 2, service_env__service__name='ServiceA', ) DataCenterAssetFullFactory.create_batch( 1, service_env__service__name='ServiceB', ) DataCenterAssetFullFactory.create_batch( 3, service_env__service__name='ServiceC', ) ServiceEnvironmentFactory.create(service__name='ServiceD') graph = GraphFactory( aggregate_type=AggregateType.aggregate_count.id, params={ 'series': 'id', 'labels': 'service_env__service__name', }, ) dca_qs = DataCenterAsset.objects.all() filtered_qs = graph.get_queryset_for_filter( dca_qs, { 'service_env__service__name': 'ServiceA', }) self.assertEqual(filtered_qs.count(), 2) self.assertEqual( list( filtered_qs.values_list('service_env__service__name', flat=True)), ['ServiceA', 'ServiceA'])
def test_get_data_for_choices_field_returns_names(self): test_data = { SCMCheckResult.scm_ok: 3, SCMCheckResult.check_failed: 2, SCMCheckResult.scm_error: 1 } data_center_assets = DataCenterAssetFullFactory.create_batch( 10, scmstatuscheck=None ) scm_checks = [] dca_number = 0 for check_result in test_data: for i in range(test_data[check_result]): scm_checks.append( SCMStatusCheckFactory( check_result=check_result, base_object=data_center_assets[dca_number] ) ) dca_number += 1 graph = GraphFactory( params=self._get_graph_params( { "filters": {}, "labels": "scmstatuscheck__check_result", "series": "id", "sort": "series" } ) ) for check_result in test_data: encoded_params = encode_params({ 'pk': graph.pk, 'filters': {'scmstatuscheck__check_result': check_result.id} }) graph_filter = ByGraphFilter( None, {'graph-query': encoded_params}, DataCenterAsset, DataCenterAdmin ) qs = graph_filter.queryset(None, DataCenterAsset.objects.all()) self.assertEqual(len(qs), test_data[check_result]) encoded_params = encode_params({ 'pk': graph.pk, 'filters': {'scmstatuscheck__check_result': None} }) graph_filter = ByGraphFilter( None, {'graph-query': encoded_params}, DataCenterAsset, DataCenterAdmin ) qs = graph_filter.queryset(None, DataCenterAsset.objects.all()) self.assertEqual(len(qs), len(data_center_assets) - dca_number)
def test_changelist_view(self): self.login_as_user() DataCenterAssetFullFactory.create_batch(10) with self.assertNumQueries(18): self.client.get( reverse('admin:data_center_datacenterasset_changelist'), )