File: test_database_objects.py

package info (click to toggle)
python-datacache 1.4.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 284 kB
  • sloc: python: 935; sh: 14; makefile: 4
file content (53 lines) | stat: -rw-r--r-- 1,561 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""
Test that datacache constructs databases correctly
(separately from downloading/caching them)
"""
import tempfile

import datacache

def eq_(x, y):
    assert x == y

TABLE_NAME = "test"
INT_COL_NAME = "int_col"
STR_COL_NAME = "str_col"
COL_TYPES = [(INT_COL_NAME, "INT"), (STR_COL_NAME, "STR")]
KEY_COLUMN_NAME = "int_col"
NULLABLE = {STR_COL_NAME}
ROWS = [(1, "darkness"), (2, "light"), (3, None)]
INDICES = [["str_col"]]
VERSION = 2

def make_table_object():
    return datacache.database_table.DatabaseTable(
        name=TABLE_NAME,
        column_types=COL_TYPES,
        make_rows=lambda: ROWS,
        indices=INDICES,
        nullable=NULLABLE,
        primary_key=INT_COL_NAME)

def test_database_table_object():
    table = make_table_object()
    assert(table.name == TABLE_NAME)
    assert(table.indices == INDICES)
    assert(table.nullable == NULLABLE)
    assert(table.rows == ROWS)
    assert(table.indices == INDICES)

def test_create_db():
    with tempfile.NamedTemporaryFile(suffix="test.db") as f:
        db = datacache.database.Database(f.name)
        table = make_table_object()
        db.create(tables=[table], version=VERSION)
        assert db.has_table(TABLE_NAME)
        assert db.has_version()
        assert db.version() == VERSION
        sql = """
            SELECT %s from %s WHERE %s = '%s'
        """ % (INT_COL_NAME, TABLE_NAME, STR_COL_NAME, "light")
        cursor = db.connection.execute(sql)
        int_result_tuple = cursor.fetchone()
        int_result = int_result_tuple[0]
        assert(int_result == 2)