Projekt

Obecné

Profil

« Předchozí | Další » 

Revize c36d3299

Přidáno uživatelem David Friesecký před téměř 4 roky(ů)

Re #8670 - Covered certificate_repository by the CRUD tests

Zobrazit rozdíly:

src/dao/certificate_repository.py
196 196
                      certificate.parent_id,
197 197
                      certificate_id]
198 198

  
199
            print(f"Parent: {certificate.parent_id}")
200

  
201 199
            self.cursor.execute(sql, values)
202 200
            self.connection.commit()
203 201

  
......
207 205
            self.cursor.execute(sql, values)
208 206
            self.connection.commit()
209 207

  
208
            check_updated = self.cursor.rowcount > 0
209

  
210 210
            # iterate over usage pairs
211 211
            for usage_id, usage_value in certificate.usages.items():
212 212
                if usage_value:
......
220 220
        except Error as e:
221 221
            raise DatabaseException(e)
222 222

  
223
        return self.cursor.rowcount > 0
223
        return check_updated
224 224

  
225 225
    def delete(self, certificate_id: int):
226 226
        """
tests/integration_tests/dao/certificate_repository_test.py
4 4
from src.model.private_key import PrivateKey
5 5

  
6 6

  
7
def test_create(certificate_repository, private_key_repository_unique):
8
    private_key = PrivateKey(private_key_id=-1, private_key="test_pk", password="test_password")
9
    private_key_id = private_key_repository_unique.create(private_key=private_key)
10

  
11
    assert type(private_key_id) is int
12

  
13
    certificate_1 = Certificate(certificate_id=-1, common_name="test_create_1", valid_from="test_from_1",
14
                                valid_to="test_to_1", pem_data="test_pem_data_1", private_key_id=private_key_id,
15
                                type_id=ROOT_CA_ID, parent_id=-1, usages={CA_ID: True})
16
    certificate_id_1 = certificate_repository.create(certificate=certificate_1)
17

  
18
    certificate_2 = Certificate(certificate_id=-1, common_name="test_create_2", valid_from="test_from_2",
19
                                valid_to="test_to_2", pem_data="test_pem_data_2", private_key_id=private_key_id,
20
                                type_id=INTERMEDIATE_CA_ID, parent_id=certificate_id_1,
21
                                usages={CA_ID: True, SSL_ID: True})
22
    certificate_id_2 = certificate_repository.create(certificate=certificate_2)
23

  
24
    assert type(certificate_id_1) is int
25
    assert type(certificate_id_2) is int
26

  
27
    certificate_1 = certificate_repository.read(certificate_id=certificate_id_1)
28
    certificate_2 = certificate_repository.read(certificate_id=certificate_id_2)
29

  
30
    assert certificate_1.certificate_id == certificate_id_1
31
    assert certificate_1.common_name == "test_create_1"
32
    assert certificate_1.valid_from == "test_from_1"
33
    assert certificate_1.valid_to == "test_to_1"
34
    assert certificate_1.private_key_id == private_key_id
35
    assert certificate_1.type_id == ROOT_CA_ID
36
    assert certificate_1.parent_id == certificate_id_1
37
    assert certificate_1.usages[CA_ID]
38
    assert not certificate_1.usages[SSL_ID]
39
    assert not certificate_1.usages[SIGNATURE_ID]
40
    assert not certificate_1.usages[AUTHENTICATION_ID]
41
    assert certificate_1.revocation_date == ""
42
    assert certificate_1.revocation_reason == ""
43

  
44
    assert certificate_2.certificate_id == certificate_id_2
45
    assert certificate_2.common_name == "test_create_2"
46
    assert certificate_2.valid_from == "test_from_2"
47
    assert certificate_2.valid_to == "test_to_2"
48
    assert certificate_2.private_key_id == private_key_id
49
    assert certificate_2.type_id == INTERMEDIATE_CA_ID
50
    assert certificate_2.parent_id == certificate_id_1
51
    assert certificate_2.usages[CA_ID]
52
    assert certificate_2.usages[SSL_ID]
53
    assert not certificate_2.usages[SIGNATURE_ID]
54
    assert not certificate_2.usages[AUTHENTICATION_ID]
55
    assert certificate_2.revocation_date == ""
56
    assert certificate_2.revocation_reason == ""
57

  
58

  
59
def test_read(certificate_repository, private_key_repository_unique):
60
    private_key = PrivateKey(private_key_id=-1, private_key="test_pk", password="test_password")
61
    private_key_id = private_key_repository_unique.create(private_key=private_key)
62

  
63
    assert type(private_key_id) is int
64

  
65
    certificate = Certificate(certificate_id=-1, common_name="test_read", valid_from="test_from",
66
                              valid_to="test_to", pem_data="test_pem_data", private_key_id=private_key_id,
67
                              type_id=ROOT_CA_ID, parent_id=-1, usages={CA_ID: True})
68
    certificate_id = certificate_repository.create(certificate=certificate)
69

  
70
    assert type(certificate_id) is int
71

  
72
    certificate = certificate_repository.read(certificate_id=certificate_id)
73

  
74
    assert certificate.certificate_id == certificate_id
75
    assert certificate.common_name == "test_read"
76
    assert certificate.valid_from == "test_from"
77
    assert certificate.valid_to == "test_to"
78
    assert certificate.private_key_id == private_key_id
79
    assert certificate.type_id == ROOT_CA_ID
80
    assert certificate.parent_id == certificate_id
81
    assert certificate.usages[CA_ID]
82
    assert not certificate.usages[SSL_ID]
83
    assert not certificate.usages[SIGNATURE_ID]
84
    assert not certificate.usages[AUTHENTICATION_ID]
85
    assert certificate.revocation_date == ""
86
    assert certificate.revocation_reason == ""
87

  
88

  
89
def test_read_invalid_id(certificate_repository, private_key_repository_unique):
90
    none_id = 100
91
    certificate = certificate_repository.read(certificate_id=none_id)
92

  
93
    assert certificate is None
94

  
95

  
96
def test_read_all(certificate_repository, private_key_repository_unique):
97
    certificates = certificate_repository.read_all()
98

  
99
    assert len(certificates) == 3
100

  
101
    assert certificates[0].common_name == "test_create_1"
102
    assert certificates[1].common_name == "test_create_2"
103
    assert certificates[2].common_name == "test_read"
104

  
105
def test_update(certificate_repository, private_key_repository_unique):
106
    private_key = PrivateKey(private_key_id=-1, private_key="test_pk", password="test_password")
107
    private_key_id = private_key_repository_unique.create(private_key=private_key)
108

  
109
    assert type(private_key_id) is int
110

  
111
    certificate = Certificate(certificate_id=-1, common_name="test_update_before", valid_from="test_from",
112
                              valid_to="test_to", pem_data="test_pem_data", private_key_id=private_key_id,
113
                              type_id=ROOT_CA_ID, parent_id=-1, usages={CA_ID: True})
114
    certificate_id = certificate_repository.create(certificate=certificate)
115

  
116
    assert type(certificate_id) is int
117

  
118
    certificate = certificate_repository.read(certificate_id=certificate_id)
119

  
120
    assert certificate.certificate_id == certificate_id
121
    assert certificate.common_name == "test_update_before"
122
    assert certificate.valid_from == "test_from"
123
    assert certificate.valid_to == "test_to"
124
    assert certificate.private_key_id == private_key_id
125
    assert certificate.type_id == ROOT_CA_ID
126
    assert certificate.parent_id == certificate_id
127
    assert certificate.usages[CA_ID]
128
    assert not certificate.usages[SSL_ID]
129
    assert not certificate.usages[SIGNATURE_ID]
130
    assert not certificate.usages[AUTHENTICATION_ID]
131
    assert certificate.revocation_date == ""
132
    assert certificate.revocation_reason == ""
133

  
134
    certificate.common_name = "test_update_after"
135
    certificate.usages[SSL_ID] = True
136

  
137
    check_updated = certificate_repository.update(certificate_id=certificate_id, certificate=certificate)
138

  
139
    assert check_updated is True
140

  
141
    certificate = certificate_repository.read(certificate_id=certificate_id)
142

  
143
    assert certificate.certificate_id == certificate_id
144
    assert certificate.common_name == "test_update_after"
145
    assert certificate.valid_from == "test_from"
146
    assert certificate.valid_to == "test_to"
147
    assert certificate.private_key_id == private_key_id
148
    assert certificate.type_id == ROOT_CA_ID
149
    assert certificate.parent_id == certificate_id
150
    assert certificate.usages[CA_ID]
151
    assert certificate.usages[SSL_ID]
152
    assert not certificate.usages[SIGNATURE_ID]
153
    assert not certificate.usages[AUTHENTICATION_ID]
154
    assert certificate.revocation_date == ""
155
    assert certificate.revocation_reason == ""
156

  
157

  
158
def test_update_invalid_id(certificate_repository, private_key_repository_unique):
159
    private_key = PrivateKey(private_key_id=-1, private_key="test_pk", password="test_password")
160
    private_key_id = private_key_repository_unique.create(private_key=private_key)
161

  
162
    assert type(private_key_id) is int
163

  
164
    certificate = Certificate(certificate_id=-1, common_name="test_update_before", valid_from="test_from",
165
                              valid_to="test_to", pem_data="test_pem_data", private_key_id=private_key_id,
166
                              type_id=ROOT_CA_ID, parent_id=-1, usages={CA_ID: True})
167
    certificate_id = certificate_repository.create(certificate=certificate)
168

  
169
    assert type(certificate_id) is int
170

  
171
    certificate = certificate_repository.read(certificate_id=certificate_id)
172

  
173
    assert certificate.certificate_id == certificate_id
174
    assert certificate.common_name == "test_update_before"
175
    assert certificate.valid_from == "test_from"
176
    assert certificate.valid_to == "test_to"
177
    assert certificate.private_key_id == private_key_id
178
    assert certificate.type_id == ROOT_CA_ID
179
    assert certificate.parent_id == certificate_id
180
    assert certificate.usages[CA_ID]
181
    assert not certificate.usages[SSL_ID]
182
    assert not certificate.usages[SIGNATURE_ID]
183
    assert not certificate.usages[AUTHENTICATION_ID]
184
    assert certificate.revocation_date == ""
185
    assert certificate.revocation_reason == ""
186

  
187
    certificate.common_name = "test_update_after"
188
    certificate.usages[SSL_ID] = True
189

  
190
    none_id = 100
191
    check_updated = certificate_repository.update(certificate_id=none_id, certificate=certificate)
192

  
193
    assert check_updated is False
194

  
195

  
196
def test_delete(certificate_repository, private_key_repository_unique):
197
    private_key = PrivateKey(private_key_id=-1, private_key="test_pk", password="test_password")
198
    private_key_id = private_key_repository_unique.create(private_key=private_key)
199

  
200
    assert type(private_key_id) is int
201

  
202
    certificate_1 = Certificate(certificate_id=-1, common_name="test_delete_1", valid_from="test_from",
203
                              valid_to="test_to", pem_data="test_pem_data", private_key_id=private_key_id,
204
                              type_id=ROOT_CA_ID, parent_id=-1, usages={CA_ID: True})
205
    certificate_id_1 = certificate_repository.create(certificate=certificate_1)
206

  
207
    certificate_2 = Certificate(certificate_id=-1, common_name="test_delete_2", valid_from="test_from",
208
                                valid_to="test_to", pem_data="test_pem_data", private_key_id=private_key_id,
209
                                type_id=ROOT_CA_ID, parent_id=-1, usages={CA_ID: True})
210
    certificate_id_2 = certificate_repository.create(certificate=certificate_2)
211

  
212
    assert type(certificate_id_1) is int
213
    assert type(certificate_id_2) is int
214

  
215
    certificate_1 = certificate_repository.read(certificate_id=certificate_id_1)
216
    certificate_2 = certificate_repository.read(certificate_id=certificate_id_2)
217

  
218
    assert certificate_1.certificate_id == certificate_id_1
219
    assert certificate_1.common_name == "test_delete_1"
220

  
221
    assert certificate_2.certificate_id == certificate_id_2
222
    assert certificate_2.common_name == "test_delete_2"
223

  
224
    check_deleted = certificate_repository.delete(certificate_id=certificate_id_1)
225

  
226
    assert check_deleted is True
227

  
228
    certificate_1 = certificate_repository.read(certificate_id=certificate_id_1)
229
    certificate_2 = certificate_repository.read(certificate_id=certificate_id_2)
230

  
231
    assert certificate_1 is None
232

  
233
    assert certificate_2.certificate_id == certificate_id_2
234
    assert certificate_2.common_name == "test_delete_2"
235

  
236

  
7 237
def test_set_certificate_revoked(certificate_repository, private_key_repository_unique):
8 238
    private_key = PrivateKey(private_key_id=-1, private_key="test_pk", password="test_password")
9 239
    private_key_id = private_key_repository_unique.create(private_key)
tests/integration_tests/dao/private_key_repository_test.py
128 128

  
129 129
    assert check_updated is False
130 130

  
131

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

  
153 154
    check_deleted = private_key_repository_unique.delete(private_key_id=private_key_1_id)
154 155

  
156
    assert check_deleted is True
157

  
155 158
    private_keys = private_key_repository_unique.read_all()
156 159

  
157 160
    assert len(private_keys) == 1

Také k dispozici: Unified diff