def test_create_two_db_with_same_table(self):
        db1 = create_database('db1')
        db1.create_table('table1',
                         columns=[
                             {
                                 'name': 'id',
                                 'type': 'int'
                             },
                             {
                                 'name': 'name',
                                 'type': 'str'
                             },
                             {
                                 'name': 'birth_date',
                                 'type': 'date'
                             },
                             {
                                 'name': 'nationality',
                                 'type': 'str'
                             },
                             {
                                 'name': 'alive',
                                 'type': 'bool'
                             },
                         ])
        db1.table1.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG',
                          False)
        self.assertEqual(db1.show_tables(), ['table1'])
        self.assertEqual(db1.table1.count(), 1)

        db2 = create_database('db2')
        db2.create_table('table1',
                         columns=[
                             {
                                 'name': 'id',
                                 'type': 'int'
                             },
                             {
                                 'name': 'name',
                                 'type': 'str'
                             },
                             {
                                 'name': 'birth_date',
                                 'type': 'date'
                             },
                             {
                                 'name': 'nationality',
                                 'type': 'str'
                             },
                             {
                                 'name': 'alive',
                                 'type': 'bool'
                             },
                         ])
        self.assertEqual(db2.show_tables(), ['table1'])
        self.assertEqual(db2.table1.count(), 0)
    def test_connect_existing_database(self):
        db = create_database('test-db')
        db.create_table('authors',
                        columns=[
                            {
                                'name': 'id',
                                'type': 'int'
                            },
                            {
                                'name': 'name',
                                'type': 'str'
                            },
                            {
                                'name': 'birth_date',
                                'type': 'date'
                            },
                            {
                                'name': 'nationality',
                                'type': 'str'
                            },
                            {
                                'name': 'alive',
                                'type': 'bool'
                            },
                        ])
        db.authors.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG',
                          False)
        self.assertEqual(db.authors.count(), 1)

        #import pdb; pdb.set_trace()
        new_db = connect_database('test-db')
        self.assertEqual(new_db.show_tables(), ['authors'])
        self.assertEqual(new_db.authors.count(), 1)
 def test_create_database(self):
     db = create_database('test-db')
     self.assertEqual(db.show_tables(), [])
     db.create_table('authors',
                     columns=[
                         {
                             'name': 'id',
                             'type': 'int'
                         },
                         {
                             'name': 'name',
                             'type': 'str'
                         },
                         {
                             'name': 'birth_date',
                             'type': 'date'
                         },
                         {
                             'name': 'nationality',
                             'type': 'str'
                         },
                         {
                             'name': 'alive',
                             'type': 'bool'
                         },
                     ])
     self.assertTrue(hasattr(db, 'authors'))
     self.assertEqual(db.show_tables(), ['authors'])
     db.authors.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG',
                       False)
     self.assertEqual(db.authors.count(), 1)
     db.authors.insert(2, 'Edgard Alan Poe', date(1809, 1, 19), 'USA',
                       False)
     self.assertEqual(db.authors.count(), 2)
    def setUp(self):
        # initial clean up
        if os.path.exists(BASE_DB_FILE_PATH):
            shutil.rmtree(BASE_DB_FILE_PATH)

        self.db = create_database('library')
        self.db.create_table('authors',
                             columns=[
                                 {
                                     'name': 'id',
                                     'type': 'int'
                                 },
                                 {
                                     'name': 'name',
                                     'type': 'str'
                                 },
                                 {
                                     'name': 'birth_date',
                                     'type': 'date'
                                 },
                                 {
                                     'name': 'nationality',
                                     'type': 'str'
                                 },
                                 {
                                     'name': 'alive',
                                     'type': 'bool'
                                 },
                             ])
        self.db.authors.insert(1, 'Jorge Luis Borges', date(1899, 8, 24),
                               'ARG', False)
        self.db.authors.insert(2, 'Edgard Alan Poe', date(1809, 1, 19), 'USA',
                               False)
    def test_create_two_db_with_same_table(self):
        db1 = create_database('db1')
        db1.create_table('table1', columns=[
            {'name': 'id', 'type': 'int'},
            {'name': 'name', 'type': 'str'},
            {'name': 'birth_date', 'type': 'date'},
            {'name': 'nationality', 'type': 'str'},
            {'name': 'alive', 'type': 'bool'},
        ])
        db1.table1.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG', False)
        self.assertEqual(db1.show_tables(), ['table1'])
        self.assertEqual(db1.table1.count(), 1)

        db2 = create_database('db2')
        db2.create_table('table1', columns=[
            {'name': 'id', 'type': 'int'},
            {'name': 'name', 'type': 'str'},
            {'name': 'birth_date', 'type': 'date'},
            {'name': 'nationality', 'type': 'str'},
            {'name': 'alive', 'type': 'bool'},
        ])
        self.assertEqual(db2.show_tables(), ['table1'])
        self.assertEqual(db2.table1.count(), 0)
 def test_connect_existing_database(self):
     db = create_database('test-db')
     db.create_table('authors', columns=[
         {'name': 'id', 'type': 'int'},
         {'name': 'name', 'type': 'str'},
         {'name': 'birth_date', 'type': 'date'},
         {'name': 'nationality', 'type': 'str'},
         {'name': 'alive', 'type': 'bool'},
     ])
     db.authors.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG', False)
     self.assertEqual(db.authors.count(), 1)
     new_db = connect_database('test-db')
     self.assertEqual(new_db.show_tables(), ['authors'])
     self.assertEqual(new_db.authors.count(), 1)
    def setUp(self):
        # initial clean up
        if os.path.exists(BASE_DB_FILE_PATH):
            shutil.rmtree(BASE_DB_FILE_PATH)

        self.db = create_database('library')
        self.db.create_table('authors', columns=[
            {'name': 'id', 'type': 'int'},
            {'name': 'name', 'type': 'str'},
            {'name': 'birth_date', 'type': 'date'},
            {'name': 'nationality', 'type': 'str'},
            {'name': 'alive', 'type': 'bool'},
        ])
        self.db.authors.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG', False)
        self.db.authors.insert(2, 'Edgard Alan Poe', date(1809, 1, 19), 'USA', False)
 def test_create_database(self):
     db = create_database('test-db')
     self.assertEqual(db.show_tables(), [])
     db.create_table('authors', columns=[
         {'name': 'id', 'type': 'int'},
         {'name': 'name', 'type': 'str'},
         {'name': 'birth_date', 'type': 'date'},
         {'name': 'nationality', 'type': 'str'},
         {'name': 'alive', 'type': 'bool'},
     ])
     self.assertTrue(hasattr(db, 'authors'))
     self.assertEqual(db.show_tables(), ['authors'])
     db.authors.insert(1, 'Jorge Luis Borges', date(1899, 8, 24), 'ARG', False)
     self.assertEqual(db.authors.count(), 1)
     db.authors.insert(2, 'Edgard Alan Poe', date(1809, 1, 19), 'USA', False)
     self.assertEqual(db.authors.count(), 2)
 def test_create_database_duplicated_name(self):
     with self.assertRaisesRegexp(ValidationError,
                                  'Database with name "library" already exists.'):
         create_database('library')