def test_create_table_stdin(self): expected_args = { 'command': 'create-table', 'table-name': self.default_table_name, 'input': sys.stdin, **self.default_parser_args } with (self.input_folder / 'invoice_aito_schema.json').open() as in_f: self.parse_and_execute( ['create-table', self.default_table_name], expected_args, stub_stdin=in_f ) self.assertTrue(check_table_exists(self.client, self.default_table_name))
def test_create_table(self): expected_args = { 'command': 'create-table', 'table-name': self.default_table_name, 'input': self.input_folder / 'invoice_aito_schema.json', **self.default_parser_args } self.parse_and_execute( ['create-table', self.default_table_name, f'{self.input_folder}/invoice_aito_schema.json'], expected_args ) self.assertTrue(check_table_exists(self.client, self.default_table_name))
def test_delete_table(self): self.create_table() expected_args = { 'command': 'delete-table', 'table-name': self.default_table_name, **self.default_parser_args } # Manually run test built package to communicate if os.environ.get('TEST_BUILT_PACKAGE'): proc = subprocess.Popen([self.program_name, 'delete-table', self.default_table_name], stdin=subprocess.PIPE, stdout=subprocess.PIPE) proc.communicate(b"yes") else: with patch('builtins.input', return_value='yes'): self.parse_and_execute(['delete-table', self.default_table_name], expected_args) self.assertFalse(check_table_exists(self.client, self.default_table_name))
def test_create_and_delete_database(self): self.addCleanup(self.delete_default_table_and_check) api.delete_database(client=self.client) self.assertEqual(len(api.get_existing_tables(client=self.client)), 0) db_schema = {'schema': {self.default_table_name: self.default_table_schema}} api.create_database(client=self.client, schema=db_schema) instance_db_schema = api.get_database_schema(client=self.client) self.assertEqual(AitoDatabaseSchema.from_deserialized_object(db_schema), instance_db_schema) self.assertEqual(len(api.get_existing_tables(client=self.client)), 1) self.assertTrue(api.check_table_exists(self.client, self.default_table_name)) api.delete_database(client=self.client) self.assertEqual(len(api.get_existing_tables(client=self.client)), 0)
def test_delete_and_create_database(self): with patch('builtins.input', return_value='yes'): self.parse_and_execute(['delete-database'], {'command': 'delete-database', **self.default_parser_args}) self.assertEqual(len(get_existing_tables(self.client)), 0) database_schema = {'schema': {self.default_table_name: self.default_table_schema.to_json_serializable()}} database_schema_fp = self.output_folder / 'database_schema.json' with database_schema_fp.open('w') as f: json.dump(database_schema, f) self.addCleanup(database_schema_fp.unlink) expected_args = { 'command': 'create-database', 'input': database_schema_fp, **self.default_parser_args } self.parse_and_execute(['create-database', str(database_schema_fp)], expected_args) self.assertEqual(len(get_existing_tables(self.client)), 1) self.assertTrue(check_table_exists(self.client, self.default_table_name))
def create_default_table_and_check(self): api.create_table(self.client, self.default_table_name, self.default_table_schema) self.assertTrue(api.check_table_exists(self.client, self.default_table_name))
def delete_default_table_and_check(self): api.delete_table(self.client, self.default_table_name) self.assertFalse(api.check_table_exists(self.client, self.default_table_name))