def test_build_report_request_with_specified_fields_invalid(self, mocked__retrieve_report_data, mocked__validate_type, mocked_report_type_fields, mocked__init__): mocked__init__.return_value = None fields = ['AccountDescriptiveName', 'Page', 'InvalidReportFieldName'] reports = Reports(credentials={}) with self.assertRaises(InvalidReportFieldNameError): reports.retrieve_report('CLICK_PERFORMANCE_REPORT', 'YESTERDAY', fields)
def test_build_report_request_without_specified_fields(self, mocked__retrieve_report_data, mocked__validate_type, mocked_report_type_fields, mocked__init__): mocked__init__.return_value = None mocked_report_type_fields.return_value = samples.SAMPLE_REPORT_TYPE_FIELDS reports = Reports(credentials={}) reports.retrieve_report('CLICK_PERFORMANCE_REPORT', 'YESTERDAY') mocked__retrieve_report_data.assert_called_once_with(reports, samples.EXPECTED_REPORT_REQUEST)
def test_build_report_request_with_specified_fields_valid(self, mocked__retrieve_report_data, mocked__validate_type, mocked_report_type_fields, mocked__init__): mocked__init__.return_value = None mocked_report_type_fields.return_value = samples.SAMPLE_REPORT_TYPE_FIELDS fields = ['AccountDescriptiveName', 'Page'] reports = Reports(credentials={}) reports.retrieve_report('CLICK_PERFORMANCE_REPORT', 'YESTERDAY', fields)
def test_integration_subset(self, mock_report_type_fields, mock_types, mock_report_schema, mock__retrieve_report_data): mock_report_type_fields.return_value = samples.SAMPLE_REPORT_TYPE_FIELDS mock_types.side_effect = fake_types mock__retrieve_report_data.return_value = gzip.GzipFile(samples.SAMPLE_SUBSET_REPORT_FILE_PATH, mode='rb') reports = Reports(samples.FAKE_CREDENTIALS) report = reports.retrieve_report('CLICK_PERFORMANCE_REPORT', 'YESTERDAY', ['CampaignId', 'GclId']) self.assertEqual(samples.EXPECTED_SUBSET_HEADERS, report.headers) self.assertEqual(samples.EXPECTED_LENGTH, report.length) self.assertEqual(samples.EXPECTED_SUBSET_FIRST_ROW, report.rows.next())