コード例 #1
0
ファイル: test_db.py プロジェクト: lgastako/db
 def setup_method(self, method):
     db.clear()
     db.drivers.autoregister_class(TestDriver)
     db.from_url(MEM_URL)
     db.do(CREATE_FOO_SQL)
     db.do("INSERT INTO foo VALUES (1, 'foo')")
     self.db = db.get()
コード例 #2
0
ファイル: test_db.py プロジェクト: palbee/db
 def setup_method(self, method):
     db.clear()
     db.drivers.autoregister_class(TestDriver)
     db.from_url(MEM_URL)
     db.do(CREATE_FOO_SQL)
     db.do("INSERT INTO foo VALUES (1, 'foo')")
     self.db = db.get()
コード例 #3
0
    def test_create_and_connect_to_two_separately(self):
        db1 = db.from_url("sqlite3:///:memory:", db_name="db1")
        db2 = db.from_url("sqlite3:///:memory:", db_name="db2")

        db1.do(CREATE_FOO_SQL)
        db2.do(CREATE_FOO_SQL)

        db1.do("INSERT INTO foo (value) VALUES (1)")
        db1.do("INSERT INTO foo (value) VALUES (2)")
        db1.do("INSERT INTO foo (value) VALUES (3)")

        db2.do("INSERT INTO foo (value) VALUES (4)")
        db2.do("INSERT INTO foo (value) VALUES (5)")
        db2.do("INSERT INTO foo (value) VALUES (6)")

        assert db1.item("SELECT SUM(value) AS n FROM foo").n == 6
        assert db2.item("SELECT SUM(value) AS n FROM foo").n == 15
コード例 #4
0
ファイル: test_db.py プロジェクト: lgastako/db
    def test_create_and_connect_to_two_separately_one_default(self):
        db1 = db.from_url(MEM_URL)
        db2 = db.from_url(MEM_URL, db_name="db2")

        db1.do(CREATE_FOO_SQL)
        db2.do(CREATE_FOO_SQL)

        db1.do("INSERT INTO foo (value) VALUES (1)")
        db1.do("INSERT INTO foo (value) VALUES (2)")
        db1.do("INSERT INTO foo (value) VALUES (3)")

        db2.do("INSERT INTO foo (value) VALUES (4)")
        db2.do("INSERT INTO foo (value) VALUES (5)")
        db2.do("INSERT INTO foo (value) VALUES (6)")

        assert db1.item("SELECT SUM(value) AS n FROM foo").n == 6
        assert db2.item("SELECT SUM(value) AS n FROM foo").n == 15
コード例 #5
0
ファイル: test_db.py プロジェクト: palbee/db
    def test_create_and_connect_to_two_separately_one_default(self):
        db1 = db.from_url(MEM_URL)
        db2 = db.from_url(MEM_URL, db_name="db2")

        db1.do(CREATE_FOO_SQL)
        db2.do(CREATE_FOO_SQL)

        db1.do("INSERT INTO foo (value) VALUES (1)")
        db1.do("INSERT INTO foo (value) VALUES (2)")
        db1.do("INSERT INTO foo (value) VALUES (3)")

        db2.do("INSERT INTO foo (value) VALUES (4)")
        db2.do("INSERT INTO foo (value) VALUES (5)")
        db2.do("INSERT INTO foo (value) VALUES (6)")

        assert db1.item("SELECT SUM(value) AS n FROM foo").n == 6
        assert db2.item("SELECT SUM(value) AS n FROM foo").n == 15
コード例 #6
0
ファイル: test_db.py プロジェクト: palbee/db
    def test_appropriate_exceptions_are_ignored(self):
        testdb = db.from_url("test:///foo", db_name="testdb")
        test_cursor = TestCursor()

        testdb.items("SELECT * FROM foo",
                     _conn=TestConn(),
                     _cursor=test_cursor)
        assert test_cursor.called == 1
コード例 #7
0
ファイル: test_db.py プロジェクト: mattbarto/db
    def test_create_and_connect_to_two_separately(self):
        db1 = db.from_url("sqlite3:///:memory:", db_name="db1")
        db2 = db.from_url("sqlite3:///:memory:", db_name="db2")

        db1.do(CREATE_FOO_SQL)
        db2.do(CREATE_FOO_SQL)

        db1.do("INSERT INTO foo (value) VALUES (1)")
        db1.do("INSERT INTO foo (value) VALUES (2)")
        db1.do("INSERT INTO foo (value) VALUES (3)")

        db2.do("INSERT INTO foo (value) VALUES (4)")
        db2.do("INSERT INTO foo (value) VALUES (5)")
        db2.do("INSERT INTO foo (value) VALUES (6)")

        assert db1.item("SELECT SUM(value) AS n FROM foo").n == 6
        assert db2.item("SELECT SUM(value) AS n FROM foo").n == 15
コード例 #8
0
ファイル: test_db.py プロジェクト: lgastako/db
    def test_appropriate_exceptions_are_ignored(self):
        testdb = db.from_url("test:///foo", db_name="testdb")
        test_cursor = TestCursor()

        testdb.items("SELECT * FROM foo",
                     _conn=TestConn(),
                     _cursor=test_cursor)
        assert test_cursor.called == 1
コード例 #9
0
def test_search_path():
    url = os.environ["DB_PSYCOPG2_TEST_URL"]

    test_db = db.from_url(url)
    test_db.do("DROP SCHEMA IF EXISTS other_schema CASCADE;")
    test_db.do("CREATE SCHEMA other_schema;")
    test_db.do("CREATE TABLE other_schema.path_test (name TEXT)")

    if "?" not in url:
        url += "?"
    url += "&search_path=other_schema"

    test_db2 = db.from_url(url)

    assert test_db2.count("other_schema.path_test") == 0
    test_db2.do("INSERT INTO other_schema.path_test (name) VALUES ('foo');")
    test_db2.do("INSERT INTO other_schema.path_test (name) VALUES ('bar');")
    assert test_db2.count("other_schema.path_test") == 2

    assert set([x.name for x in test_db2.items("SELECT * FROM path_test")]) == \
           set(["foo", "bar"])
コード例 #10
0
def test_search_path():
    url = os.environ["DB_PSYCOPG2_TEST_URL"]

    test_db = db.from_url(url)
    test_db.do("DROP SCHEMA IF EXISTS other_schema CASCADE;");
    test_db.do("CREATE SCHEMA other_schema;");
    test_db.do("CREATE TABLE other_schema.path_test (name TEXT)")

    if "?" not in url:
        url += "?"
    url += "&search_path=other_schema"

    test_db2 = db.from_url(url)

    assert test_db2.count("other_schema.path_test") == 0
    test_db2.do("INSERT INTO other_schema.path_test (name) VALUES ('foo');")
    test_db2.do("INSERT INTO other_schema.path_test (name) VALUES ('bar');")
    assert test_db2.count("other_schema.path_test") == 2

    assert set([x.name for x in test_db2.items("SELECT * FROM path_test")]) == \
           set(["foo", "bar"])
コード例 #11
0
    def test_registering_returns_db(self):
        test_db = db.from_url("sqlite3:///:memory:", db_name="test_db")

        assert test_db is not None

        test_db.do("""CREATE TABLE foo (
            foo_id INTEGER PRIMARY KEY,
            bar TEXT NOT NULL
        )""")
        test_db.do("INSERT INTO foo (foo_id, bar) VALUES (1, 'a')")
        test_db.do("INSERT INTO foo (foo_id, bar) VALUES (2, 'b')")
        test_db.do("INSERT INTO foo (foo_id, bar) VALUES (3, 'c')")

        assert test_db.item("SELECT COUNT(*) AS n FROM foo").n == 3
コード例 #12
0
ファイル: test_drivers.py プロジェクト: lgastako/db
    def test_registering_returns_db(self):
        test_db = db.from_url("sqlite3:///:memory:", db_name="test_db")

        assert test_db is not None

        test_db.do("""CREATE TABLE foo (
            foo_id INTEGER PRIMARY KEY,
            bar TEXT NOT NULL
        )""")
        test_db.do("INSERT INTO foo (foo_id, bar) VALUES (1, 'a')")
        test_db.do("INSERT INTO foo (foo_id, bar) VALUES (2, 'b')")
        test_db.do("INSERT INTO foo (foo_id, bar) VALUES (3, 'c')")

        assert test_db.item("SELECT COUNT(*) AS n FROM foo").n == 3
コード例 #13
0
 def test_paramstyle_set_properly(self):
     mem_db = db.from_url("sqlite3:///:memory:")
     mem_db.do("CREATE TABLE foo_psp (bar)")
     sql = "SELECT COUNT(*) AS n FROM foo_psp WHERE bar = %X"
     assert mem_db.item(sql, "baz").n == 0
コード例 #14
0
 def test_from_url(self):
     mem_db = db.from_url("sqlite3:///:memory:")
     mem_db.do("CREATE TABLE foo_tfu (bar)")
     sql = "SELECT COUNT(*) AS n FROM foo_tfu"
     assert mem_db.item(sql).n == 0
コード例 #15
0
 def test_paramstyle_set_properly(self):
     mem_db = db.from_url("sqlite3:///:memory:")
     mem_db.do("CREATE TABLE foo_psp (bar)")
     sql = "SELECT COUNT(*) AS n FROM foo_psp WHERE bar = %X"
     assert mem_db.item(sql, "baz").n == 0
コード例 #16
0
ファイル: test_db.py プロジェクト: palbee/db
 def test_inappropriate_exceptions_are_propagated(self):
     testdb = db.from_url("test:///foo", db_name="testdb")
     with pytest.raises(TestCursorException):
         testdb.items("SELECT * FROM foo",
                      _conn=TestConn(),
                      _cursor=TestCursor("foo"))
コード例 #17
0
ファイル: test_db.py プロジェクト: lgastako/db
 def test_from_url(self):
     db.drivers.autoregister_class(db_sqlite3.Sqlite3Driver)
     db.from_url(MEM_URL)
     assert "sqlite3" in db.drivers._DRIVERS
     assert len(db.drivers._DRIVERS) == 1
コード例 #18
0
ファイル: test_db.py プロジェクト: lgastako/db
 def test_from_url_unknown_protocol(self):
     with pytest.raises(db.NoDriverForURL):
         db.from_url("http://www.google.com/")
     assert len(db.drivers._DRIVERS) == 0
コード例 #19
0
ファイル: test_db.py プロジェクト: palbee/db
 def test_from_url_unknown_protocol(self):
     with pytest.raises(db.NoDriverForURL):
         db.from_url("http://www.google.com/")
     assert len(db.drivers._DRIVERS) == 0
コード例 #20
0
ファイル: test_db.py プロジェクト: lgastako/db
 def test_from_url_empty_url(self):
     with pytest.raises(db.InvalidDatabaseURL) as ex:
         db.from_url("")
     assert ex.value.message == ""
     assert len(db.drivers._DRIVERS) == 0
コード例 #21
0
ファイル: test_db.py プロジェクト: lgastako/db
 def test_from_url_no_url(self):
     with pytest.raises(db.InvalidDatabaseURL) as ex:
         db.from_url(None)
     assert ex.value.message is None
     assert len(db.drivers._DRIVERS) == 0
コード例 #22
0
ファイル: test_db.py プロジェクト: palbee/db
 def test_from_url_no_url(self):
     with pytest.raises(db.InvalidDatabaseURL) as ex:
         db.from_url(None)
     assert ex.value.message is None
     assert len(db.drivers._DRIVERS) == 0
コード例 #23
0
ファイル: test_db.py プロジェクト: lgastako/db
 def test_inappropriate_exceptions_are_propagated(self):
     testdb = db.from_url("test:///foo", db_name="testdb")
     with pytest.raises(TestCursorException):
         testdb.items("SELECT * FROM foo",
                      _conn=TestConn(),
                      _cursor=TestCursor("foo"))
コード例 #24
0
ファイル: test_db.py プロジェクト: palbee/db
 def test_from_url_empty_url(self):
     with pytest.raises(db.InvalidDatabaseURL) as ex:
         db.from_url("")
     assert ex.value.message == ""
     assert len(db.drivers._DRIVERS) == 0
コード例 #25
0
ファイル: test_db.py プロジェクト: palbee/db
 def test_from_url_bad_url(self):
     bad_url = "doesn't look like any URL I've ever seen!"
     with pytest.raises(db.InvalidDatabaseURL) as ex:
         db.from_url(bad_url)
     assert ex.value.message == bad_url
     assert len(db.drivers._DRIVERS) == 0
コード例 #26
0
 def test_from_url(self):
     mem_db = db.from_url("sqlite3:///:memory:")
     mem_db.do("CREATE TABLE foo_tfu (bar)")
     sql = "SELECT COUNT(*) AS n FROM foo_tfu"
     assert mem_db.item(sql).n == 0
コード例 #27
0
ファイル: test_db.py プロジェクト: lgastako/db
 def test_from_url_bad_url(self):
     bad_url = "doesn't look like any URL I've ever seen!"
     with pytest.raises(db.InvalidDatabaseURL) as ex:
         db.from_url(bad_url)
     assert ex.value.message == bad_url
     assert len(db.drivers._DRIVERS) == 0
コード例 #28
0
ファイル: test_db.py プロジェクト: palbee/db
 def test_from_url(self):
     db.drivers.autoregister_class(db_sqlite3.Sqlite3Driver)
     db.from_url(MEM_URL)
     assert "sqlite3" in db.drivers._DRIVERS
     assert len(db.drivers._DRIVERS) == 1