def test_get_load_parameters(self): actual_load_config = bq._get_load_parameters( TestCases.test_input_config, None, None) expected_load_config = { 'type': 'pydatalab.bq.load', 'path': 'test_path_%(_ts_month)s', 'table': 'test_table', 'schema': 'test_schema', 'mode': 'append', 'format': 'csv', 'csv_options': { 'delimiter': ';', 'quote': '"', 'skip': 9, 'strict': False }, } self.assertDictEqual(actual_load_config, expected_load_config) # Table is present in output config input_config = { 'path': 'test_path_%(_ts_month)s', 'format': 'csv', 'csv': { 'delimiter': ';', 'quote': '"', 'skip': 9, 'strict': False }, } output_config = { 'table': 'test_table', 'schema': 'test_schema', 'mode': 'append', } actual_load_config = bq._get_load_parameters(input_config, None, output_config) self.assertDictEqual(actual_load_config, expected_load_config) # Path is absent input_config = {'table': 'test_table', 'schema': 'test_schema'} actual_load_config = bq._get_load_parameters(input_config, None, None) self.assertIsNone(actual_load_config) # Path and table are absent input_config = {'schema': 'test_schema'} actual_load_config = bq._get_load_parameters(input_config, None, None) self.assertIsNone(actual_load_config) # Table is absent input_config = {'path': 'test_path', 'schema': 'test_schema'} actual_load_config = bq._get_load_parameters(input_config, None, None) self.assertIsNone(actual_load_config)
def test_get_load_parameters(self): actual_load_config = bq._get_load_parameters(TestCases.test_input_config, None, None) expected_load_config = { 'type': 'pydatalab.bq.load', 'path': 'test_path_%(_ts_month)s', 'table': 'test_table', 'schema': 'test_schema', 'mode': 'append', 'format': 'csv', 'csv_options': {'delimiter': ';', 'quote': '"', 'skip': 9, 'strict': False}, } self.assertDictEqual(actual_load_config, expected_load_config) # Table is present in output config input_config = { 'path': 'test_path_%(_ts_month)s', 'format': 'csv', 'csv': {'delimiter': ';', 'quote': '"', 'skip': 9, 'strict': False}, } output_config = { 'table': 'test_table', 'schema': 'test_schema', 'mode': 'append', } actual_load_config = bq._get_load_parameters(input_config, None, output_config) self.assertDictEqual(actual_load_config, expected_load_config) # Path is absent input_config = { 'table': 'test_table', 'schema': 'test_schema' } actual_load_config = bq._get_load_parameters(input_config, None, None) self.assertIsNone(actual_load_config) # Path and table are absent input_config = { 'schema': 'test_schema' } actual_load_config = bq._get_load_parameters(input_config, None, None) self.assertIsNone(actual_load_config) # Table is absent input_config = { 'path': 'test_path', 'schema': 'test_schema' } actual_load_config = bq._get_load_parameters(input_config, None, None) self.assertIsNone(actual_load_config)
def test_get_load_parameters(self): input_config = { 'path': 'test_path', 'table': 'test_table', 'schema': 'test_schema', 'csv': { 'delimiter': ';', 'skip': 9 }, } actual_load_config = bq._get_load_parameters(input_config) expected_load_config = { 'type': 'pydatalab.bq.load', 'format': 'csv', 'path': 'test_path', 'table': 'test_table', 'schema': 'test_schema', 'mode': 'create', 'csv_options': { 'delimiter': ';', 'skip': 9 } } self.assertDictEqual(actual_load_config, expected_load_config) input_config = { 'path': 'test_path', 'table': 'test_table', } actual_load_config = bq._get_load_parameters(input_config) self.assertEqual(actual_load_config['mode'], 'append') input_config = { 'table': 'test_table', 'schema': 'test_schema' } actual_load_config = bq._get_load_parameters(input_config) self.assertIsNone(actual_load_config) input_config = { 'schema': 'test_schema' } actual_load_config = bq._get_load_parameters(input_config) self.assertIsNone(actual_load_config) input_config = { 'path': 'test_path', } actual_load_config = bq._get_load_parameters(input_config) expected_load_config = { 'type': 'pydatalab.bq.load', 'format': 'csv', 'csv_options': None, 'path': 'test_path', } self.assertDictEqual(actual_load_config, expected_load_config) input_config = { 'path': 'test_path', 'format': 'json' } actual_load_config = bq._get_load_parameters(input_config) expected_load_config = { 'type': 'pydatalab.bq.load', 'format': 'json', 'path': 'test_path', 'csv_options': None } self.assertDictEqual(actual_load_config, expected_load_config)