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))
Exemplo n.º 4
0
    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))
Exemplo n.º 6
0
 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))
Exemplo n.º 7
0
 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))