Пример #1
0
 def test___init__can_create_multiple_databases(self):
     database_1 = None
     database_2 = None
     try:
         database_1 = pgtools.PostgresDatabase(db_name='test_pgtools_1',
                                               port=self.port)
         database_2 = pgtools.PostgresDatabase(db_name='test_pgtools_2',
                                               port=self.port)
     finally:
         if database_1:
             database_1.drop_if_exists()
         if database_2:
             database_2.drop_if_exists()
Пример #2
0
 def test_sql_ok_when_sql_is_valid(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
     assert self.database.sql('SELECT 1') == [(1, )]
     assert self.database.sql("SELECT 'hello', 2") == [('hello', 2)]
Пример #3
0
 def test_super_psql_detects_sql_error(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
     with pytest.raises(CalledProcessError):
         self.database.super_psql(['-c', 'bogus'])
Пример #4
0
 def test_drop_is_idempotent(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
     self.database.drop()
     self.database.drop()
     self.database.drop()
Пример #5
0
 def test_drop(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
     self.database.drop()
     # Can't select; the database is gone!
     with pytest.raises(psycopg2.OperationalError):
         self.database.sql('SELECT 1')
Пример #6
0
 def test_sql_detects_bogus_params(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
     with pytest.raises(TypeError):
         self.database.sql(3.14)
     with pytest.raises(psycopg2.ProgrammingError):
         self.database.sql([])
Пример #7
0
 def test_ensure_user_exists(self):
     """
     ensure_user should not fail if user already exists
     """
     self.database = pgtools.PostgresDatabase(
         db_name='test_pgtools',
         port=self.port,
     )
     self.database.create_user()
     self.database.ensure_user()
Пример #8
0
 def test___str__(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              user='******',
                                              host='localhost',
                                              port=self.port,
                                              superuser='******',
                                              template='template1')
     assert str(self.database) == (
         'PostgresDatabase(db_name=test_pgtools, user=pmxtest, '
         'host=localhost,'
         ' port=%s, superuser=postgres, template=template1)' % self.port)
Пример #9
0
 def test_create_user_exists(self):
     """
     create_user raises an exception if the user already
     exists
     """
     self.database = pgtools.PostgresDatabase(
         db_name='test_pgtools',
         port=self.port,
     )
     self.database.create_user()
     with pytest.raises(Exception):
         self.database.create_user()
Пример #10
0
 def test_create_ok_with_sql_using_psl_extensions(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create(r'\set ON_ERROR_STOP FALSE\nSYNTAX ERROR HERE')
Пример #11
0
 def test___init__ok(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
Пример #12
0
 def test_super_psql_ok_when_sql_is_valid(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
     self.database.super_psql(['-c', 'SELECT 1'])
Пример #13
0
 def test___init__ok_when_port_integer(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=int(self.port))
Пример #14
0
 def test_super_psql_detects_bogus_params(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
Пример #15
0
 def test___init__ok_when_port_string(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=str(self.port))
Пример #16
0
 def test_create_fails_when_user_nonexistent(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port,
                                              user='******')
     with pytest.raises(CalledProcessError):
         self.database.create()
Пример #17
0
 def test_create_ok_when_no_sql(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create()
Пример #18
0
 def test_create_ok_with_sql(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create('CREATE TABLE test (value text)')
Пример #19
0
 def test_create_ok_with_sql_containing_unicode(self):
     self.database = pgtools.PostgresDatabase(db_name='test_pgtools',
                                              port=self.port)
     self.database.create_user()
     self.database.create('CREATE TABLE countries (value text) -- ¡México!')