Projekt

Obecné

Profil

« Předchozí | Další » 

Revize d65b022d

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

Re #8578 - Cover private_key_repository tests
- created tests for functions create, read, read_all, update, delete
- (+) edited certificate_repository to the same stylistics

Zobrazit rozdíly:

src/dao/certificate_repository.py
1 1
from typing import Dict, List
2 2
from sqlite3 import Connection, Cursor, Error
3 3

  
4
from src.exceptions.database_exception import DatabaseException
4 5
from src.model.certificate import Certificate
5 6
from src.constants import *
6 7

  
......
70 71
                        self.cursor.execute(sql, values)
71 72
                        self.connection.commit()
72 73
        except Error as e:
73
            return e
74
            raise DatabaseException(e)
74 75

  
75 76
        return last_id
76 77

  
......
114 115
                                                   certificate_row[5],
115 116
                                                   certificate_row[6])
116 117
        except Error as e:
117
            return e
118
            raise DatabaseException(e)
118 119

  
119
        if len(certificate_row) > 0:
120
            return certificate
121
        else:
122
            return None
120
        return certificate
123 121

  
124 122
    def read_all(self, filter_type: int = None):
125 123
        """
......
166 164
                                                certificate_row[5],
167 165
                                                certificate_row[6]))
168 166
        except Error as e:
169
            return e
167
            raise DatabaseException(e)
170 168

  
171
        if len(certificates) > 0:
172
            return certificates
173
        else:
174
            return None
169
        return certificates
175 170

  
176 171
    def update(self, certificate_id: int, certificate: Certificate):
177 172
        """
......
228 223
                    self.cursor.execute(sql, values)
229 224
                    self.connection.commit()
230 225
        except Error as e:
231
            return e
226
            raise DatabaseException(e)
232 227

  
233
        if self.cursor.rowcount > 0:
234
            return True
235

  
236
        return False
228
        return self.cursor.rowcount > 0
237 229

  
238 230
    def delete(self, certificate_id: int):
239 231
        """
......
251 243
            self.cursor.execute(sql, values)
252 244
            self.connection.commit()
253 245
        except Error as e:
254
            return e
246
            raise DatabaseException(e)
255 247

  
256 248
        return self.cursor.rowcount > 0
257 249

  
......
285 277
            self.cursor.execute(sql, values)
286 278
            self.connection.commit()
287 279
        except Error as e:
288
            return e
289

  
290
        if self.cursor.rowcount > 0:
291
            return True
280
            raise DatabaseException(e)
292 281

  
293
        return False
282
        return self.cursor.rowcount > 0
294 283

  
295 284
    def clear_certificate_revocation(self, certificate_id: int):
296 285
        """
......
312 301
            self.cursor.execute(sql, values)
313 302
            self.connection.commit()
314 303
        except Error as e:
315
            return e
304
            raise DatabaseException(e)
316 305

  
317
        return True
306
        return self.cursor.rowcount > 0
318 307

  
319 308
    def get_all_revoked_by(self, certificate_id: int):
320 309
        """
......
359 348
                                                certificate_row[5],
360 349
                                                certificate_row[6]))
361 350
        except Error as e:
362
            return e
351
            raise DatabaseException(e)
363 352

  
364
        if len(certificates) > 0:
365
            return certificates
366
        else:
367
            return None
353
        return certificates
368 354

  
369 355
    def get_all_issued_by(self, certificate_id: int):
370 356
        """
......
409 395
                                                certificate_row[5],
410 396
                                                certificate_row[6]))
411 397
        except Error as e:
412
            return e
398
            raise DatabaseException(e)
413 399

  
414
        if len(certificates) > 0:
415
            return certificates
416
        else:
417
            return None
400
        return certificates
src/dao/private_key_repository.py
1 1
from sqlite3 import Connection, Cursor, Error
2 2
from typing import List
3 3

  
4
from src.exceptions.database_exception import DatabaseException
4 5
from src.model.private_key import PrivateKey
5 6
from src.constants import *
6 7

  
......
38 39
            last_id = self.cursor.lastrowid
39 40
            self.connection.commit()
40 41
        except Error as e:
41
            print(e)
42
            return None
42
            raise DatabaseException(e)
43 43

  
44 44
        return last_id
45 45

  
......
59 59
            self.cursor.execute(sql, values)
60 60
            private_key_row = self.cursor.fetchone()
61 61

  
62
            if private_key_row is None:
63
                return None
64

  
62 65
            private_key: PrivateKey = PrivateKey(private_key_row[0],
63 66
                                                 private_key_row[1],
64 67
                                                 private_key_row[2])
65 68
        except Error as e:
66
            print(e)
67
            return None
69
            raise DatabaseException(e)
68 70

  
69
        if len(private_key_row) > 0:
70
            return private_key
71
        else:
72
            return None
71
        return private_key
73 72

  
74 73
    def read_all(self):
75 74
        """
......
89 88
                                               private_key_row[1],
90 89
                                               private_key_row[2]))
91 90
        except Error as e:
92
            print(e)
93
            return None
91
            raise DatabaseException(e)
94 92

  
95
        if len(private_keys) > 0:
96
            return private_keys
97
        else:
98
            return None
93
        return private_keys
99 94

  
100 95
    def update(self, private_key_id: int, private_key: PrivateKey) -> bool:
101 96
        """
......
118 113
            self.cursor.execute(sql, values)
119 114
            self.connection.commit()
120 115
        except Error as e:
121
            print(e)
122
            return False
116
            raise DatabaseException(e)
123 117

  
124
        return True
118
        return self.cursor.rowcount > 0
125 119

  
126 120
    def delete(self, private_key_id: int) -> bool:
127 121
        """
......
139 133
            self.cursor.execute(sql, values)
140 134
            self.connection.commit()
141 135
        except Error as e:
142
            print(e)
143
            return False
136
            raise DatabaseException
144 137

  
145 138
        return self.cursor.rowcount > 0
src/exceptions/database_exception.py
1
class DatabaseException(Exception):
2
    pass
src/model/private_key.py
2 2
    def __init__(self,
3 3
                 private_key_id: int,
4 4
                 private_key: str,
5
                 password: str):
5
                 password: str = None):
6 6
        self.private_key_id = private_key_id
7 7
        self.private_key = private_key
8 8
        self.password = password
tests/integration_tests/dao/private_key_repository_test.py
1
import pytest
2
from src.constants import *
3
from src.model.certificate import Certificate
4
from src.model.private_key import PrivateKey
5

  
6

  
7
def test_create(private_key_repository):
8
    private_key_1 = PrivateKey(private_key_id=-1, private_key="test_private_key_1", password="test_password_1")
9
    private_key_2 = PrivateKey(private_key_id=-1, private_key="test_private_key_2")
10

  
11
    assert private_key_1.private_key_id == -1
12
    assert private_key_1.private_key == "test_private_key_1"
13
    assert private_key_1.password == "test_password_1"
14

  
15
    assert private_key_2.private_key_id == -1
16
    assert private_key_2.private_key == "test_private_key_2"
17
    assert private_key_2.password is None
18

  
19
    private_key_1_id = private_key_repository.create(private_key=private_key_1)
20
    private_key_2_id = private_key_repository.create(private_key=private_key_2)
21

  
22
    assert type(private_key_1_id) is int
23
    assert type(private_key_2_id) is int
24

  
25
    private_key_1 = private_key_repository.read(private_key_id=private_key_1_id)
26
    private_key_2 = private_key_repository.read(private_key_id=private_key_2_id)
27

  
28
    assert private_key_1.private_key_id == private_key_1_id
29
    assert private_key_1.private_key == "test_private_key_1"
30
    assert private_key_1.password == "test_password_1"
31

  
32
    assert private_key_2.private_key_id == private_key_2_id
33
    assert private_key_2.private_key == "test_private_key_2"
34
    assert private_key_2.password is None
35

  
36

  
37
def test_read(private_key_repository):
38
    private_key = PrivateKey(private_key_id=-1, private_key="test_private_key", password="test_password")
39

  
40
    private_key_id = private_key_repository.create(private_key=private_key)
41

  
42
    assert type(private_key_id) is int
43

  
44
    private_key = private_key_repository.read(private_key_id=private_key_id)
45

  
46
    assert private_key.private_key_id == private_key_id
47
    assert private_key.private_key == "test_private_key"
48
    assert private_key.password == "test_password"
49

  
50

  
51
def test_read_invalid_id(private_key_repository):
52
    none_id = 100
53
    private_key = private_key_repository.read(private_key_id=none_id)
54

  
55
    assert private_key is None
56

  
57

  
58
def test_read_all(private_key_repository):
59
    private_keys = private_key_repository.read_all()
60

  
61
    assert len(private_keys) == 0
62

  
63
    private_key_1 = PrivateKey(private_key_id=-1, private_key="test_private_key_1", password="test_password_1")
64
    private_key_2 = PrivateKey(private_key_id=-1, private_key="test_private_key_2")
65

  
66
    private_key_1_id = private_key_repository.create(private_key=private_key_1)
67
    private_key_2_id = private_key_repository.create(private_key=private_key_2)
68

  
69
    assert type(private_key_1_id) is int
70
    assert type(private_key_2_id) is int
71

  
72
    private_keys = private_key_repository.read_all()
73

  
74
    assert len(private_keys) == 2
75

  
76
    assert private_keys[0].private_key_id == private_key_1_id
77
    assert private_keys[0].private_key == "test_private_key_1"
78
    assert private_keys[0].password == "test_password_1"
79

  
80
    assert private_keys[1].private_key_id == private_key_2_id
81
    assert private_keys[1].private_key == "test_private_key_2"
82
    assert private_keys[1].password is None
83

  
84

  
85
def test_update(private_key_repository):
86
    private_key = PrivateKey(private_key_id=-1, private_key="test_private_key")
87

  
88
    private_key_id = private_key_repository.create(private_key=private_key)
89

  
90
    assert type(private_key_id) is int
91

  
92
    private_key = private_key_repository.read(private_key_id=private_key_id)
93

  
94
    assert private_key.private_key_id == private_key_id
95
    assert private_key.private_key == "test_private_key"
96
    assert private_key.password is None
97

  
98
    private_key.password = "test_password"
99

  
100
    check_updated = private_key_repository.update(private_key_id=private_key_id, private_key=private_key)
101

  
102
    assert check_updated is True
103

  
104
    private_key = private_key_repository.read(private_key_id=private_key_id)
105

  
106
    assert private_key.private_key_id == private_key_id
107
    assert private_key.private_key == "test_private_key"
108
    assert private_key.password == "test_password"
109

  
110

  
111
def test_update_invalid_id(private_key_repository):
112
    private_key = PrivateKey(private_key_id=-1, private_key="test_private_key")
113

  
114
    private_key_id = private_key_repository.create(private_key=private_key)
115

  
116
    assert type(private_key_id) is int
117

  
118
    private_key = private_key_repository.read(private_key_id=private_key_id)
119

  
120
    assert private_key.private_key_id == private_key_id
121
    assert private_key.private_key == "test_private_key"
122
    assert private_key.password is None
123

  
124
    private_key.password = "test_password"
125

  
126
    none_id = 100
127
    check_updated = private_key_repository.update(private_key_id=none_id, private_key=private_key)
128

  
129
    assert check_updated is False
130

  
131
def test_delete(private_key_repository):
132
    private_key_1 = PrivateKey(private_key_id=-1, private_key="test_private_key_1", password="test_password_1")
133
    private_key_2 = PrivateKey(private_key_id=-1, private_key="test_private_key_2")
134

  
135
    private_key_1_id = private_key_repository.create(private_key=private_key_1)
136
    private_key_2_id = private_key_repository.create(private_key=private_key_2)
137

  
138
    assert type(private_key_1_id) is int
139
    assert type(private_key_2_id) is int
140

  
141
    private_keys = private_key_repository.read_all()
142

  
143
    assert len(private_keys) == 2
144

  
145
    assert private_keys[0].private_key_id == private_key_1_id
146
    assert private_keys[0].private_key == "test_private_key_1"
147
    assert private_keys[0].password == "test_password_1"
148

  
149
    assert private_keys[1].private_key_id == private_key_2_id
150
    assert private_keys[1].private_key == "test_private_key_2"
151
    assert private_keys[1].password is None
152

  
153
    check_deleted = private_key_repository.delete(private_key_id=private_key_1_id)
154

  
155
    private_keys = private_key_repository.read_all()
156

  
157
    assert len(private_keys) == 1
158

  
159
    assert private_keys[0].private_key_id == private_key_2_id
160
    assert private_keys[0].private_key == "test_private_key_2"
161
    assert private_keys[0].password is None

Také k dispozici: Unified diff