Projekt

Obecné

Profil

« Předchozí | Další » 

Revize b2a9b83d

Přidáno uživatelem David Friesecký před asi 4 roky(ů)

Re #8471 - Tested direct DB communication
- implemented tests for Certificates and PrivateKeys tables via DBManager

Zobrazit rozdíly:

src/constants.py
1
DATABASE_FILE = r"C:\sqlite\db\pythonsqlite.db"
1
DATABASE_FILE = "../../../../db/database_sqlite.db"
2 2

  
3 3
ROOT_CA_ID = 1
4 4
INTERMEDIATE_CA_ID = 2
src/tests/impl/db_manager/conftest.py
1
from src.impl.db_manager import DBManager
2
import pytest
3

  
4

  
5
@pytest.fixture
6
def repository():
7
    return DBManager()
src/tests/impl/db_manager/transaction_certificates.py
1
import pytest
2
from src.constants import *
3

  
4

  
5
def test_create_first(repository):
6
    sql = f"INSERT INTO {TAB_PRIVATE_KEYS} ({COL_PRIVATE_KEY},{COL_PASSWORD}) VALUES (?,?)"
7
    repository.create(sql, ["test_pk_1", "test_pwd_1"])
8

  
9
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
10
    rows_private_keys = repository.read(sql)
11

  
12
    sql = f"INSERT INTO {TAB_CERTIFICATES} ({COL_COMMON_NAME},{COL_VALID_FROM},{COL_VALID_TO},{COL_PEM_DATA}," \
13
          f"{COL_PRIVATE_KEY_ID},{COL_TYPE_ID},{COL_PARENT_ID}) VALUES (?,?,?,?,?,?,?)"
14
    check_create = repository.create(sql, ["test_common_name", "test_valid_from", "test_valid_to", "test_pem_data",
15
                                           rows_private_keys[0][1], CA_ID, -1])
16

  
17
    sql = f"SELECT * FROM {TAB_CERTIFICATES} WHERE {COL_COMMON_NAME} LIKE 'test%'"
18
    rows_select = repository.read(sql)
19

  
20
    assert check_create
21
    assert rows_select[0][1] == "test_common_name" \
22
           and rows_select[0][2] == "test_valid_from" \
23
           and rows_select[0][3] == "test_valid_to" \
24
           and rows_select[0][4] == "test_pem_data" \
25
           and rows_select[0][5] == rows_private_keys[0][1] \
26
           and rows_select[0][6] == ROOT_CA_ID \
27
           and rows_select[0][7] == -1
28

  
29

  
30
def test_update(repository):
31
    sql = f"SELECT * FROM {TAB_CERTIFICATES} WHERE {COL_COMMON_NAME} LIKE 'test%'"
32
    rows_select = repository.read(sql)
33

  
34
    sql = f"UPDATE {TAB_CERTIFICATES} SET {COL_PARENT_ID} = ? WHERE {COL_ID} = ?"
35
    check_update: bool = repository.update(sql, rows_select[0][0], [rows_select[0][0]])
36

  
37
    sql = f"SELECT * FROM {TAB_CERTIFICATES} WHERE {COL_COMMON_NAME} LIKE 'test%'"
38
    rows_select = repository.read(sql)
39

  
40
    assert check_update
41
    assert rows_select[0][7] == rows_select[0][0]
42

  
43

  
44
def test_delete(repository):
45
    sql = f"SELECT * FROM {TAB_CERTIFICATES} WHERE {COL_COMMON_NAME} LIKE 'test%'"
46
    rows_select = repository.read(sql)
47

  
48
    i = 1
49
    print("\n")
50
    for row in rows_select:
51
        sql = f"DELETE FROM {TAB_CERTIFICATES} WHERE {COL_ID} = ?"
52
        check_delete = repository.delete(sql, row[0], False)
53
        assert check_delete
54

  
55
    sql = f"SELECT * FROM {TAB_CERTIFICATES} WHERE {COL_COMMON_NAME} LIKE 'test%'"
56
    rows_select = repository.read(sql)
57

  
58
    assert len(rows_select) == 0
src/tests/impl/db_manager/transaction_private_keys.py
1
import pytest
2
from src.constants import *
3

  
4

  
5
def test_create_first(repository):
6
    sql = f"INSERT INTO {TAB_PRIVATE_KEYS} ({COL_PRIVATE_KEY},{COL_PASSWORD}) VALUES (?,?)"
7
    check_create: bool = repository.create(sql, ["test_pk_1", "test_pwd_1"])
8

  
9
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
10
    rows_select = repository.read(sql)
11

  
12
    assert check_create
13
    assert rows_select[0][1] == "test_pk_1" and rows_select[0][2] == "test_pwd_1"
14

  
15

  
16
def test_create_count(repository):
17
    sql = f"INSERT INTO {TAB_PRIVATE_KEYS} ({COL_PRIVATE_KEY},{COL_PASSWORD}) VALUES (?,?)"
18
    check_create: bool = repository.create(sql, ["test_pk_1", "test_pwd_1"])
19

  
20
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
21
    rows_select = repository.read(sql)
22

  
23
    assert check_create
24
    assert len(rows_select) == 2
25

  
26

  
27
def test_update(repository):
28
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
29
    rows_select = repository.read(sql)
30

  
31
    sql = f"UPDATE {TAB_PRIVATE_KEYS} SET {COL_PASSWORD} = ? WHERE {COL_ID} = ?"
32
    check_update: bool = repository.update(sql, rows_select[0][0], ["test_pwd_updated"])
33

  
34
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
35
    rows_select = repository.read(sql)
36

  
37
    assert check_update
38
    assert rows_select[0][2] == "test_pwd_updated"
39

  
40

  
41
def test_delete(repository):
42
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
43
    rows_select = repository.read(sql)
44

  
45
    i = 1
46
    print("\n")
47
    for row in rows_select:
48
        sql = f"DELETE FROM {TAB_PRIVATE_KEYS} WHERE {COL_ID} = ?"
49
        check_delete = repository.delete(sql, row[0], False)
50
        assert check_delete
51

  
52
    sql = f"SELECT * FROM {TAB_PRIVATE_KEYS} WHERE {COL_PRIVATE_KEY} LIKE 'test%'"
53
    rows_select = repository.read(sql)
54

  
55
    assert len(rows_select) == 0

Také k dispozici: Unified diff