예제 #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