Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 1e07432d

Přidáno uživatelem Michal Seják před asi 4 roky(ů)

Re #8476 - Implemented `list_certificates` with unit tests.

Zobrazit rozdíly:

tests/unit_tests/rest_api/certificates.py
123 123
    ret = server.post("/api/certificates", content_type="application/json", json={
124 124
        "subject": {
125 125
            "C": "CZ",
126
            "CN": "Root CA s.r.o.",
126
            "CN": "Another Root CA s.r.o.",
127 127
            "L": "Pilsen",
128
            "O": "Root CA s.r.o.",
128
            "O": "Another Root CA s.r.o.",
129 129
            "OU": "IT department",
130 130
            "ST": "Pilsen Region",
131 131
            "emailAddress": "root@ca.com"
......
149 149
    assert d["success"]
150 150

  
151 151
    ret = server.post("/api/certificates", content_type="application/json", json={
152
        "CA": 2,
152 153
        "subject": {
153
            "CA": 2,
154 154
            "C": "CZ",
155
            "CN": "Root CA s.r.o.",
155
            "CN": "Intermediate CA s.r.o.",
156 156
            "L": "Pilsen",
157
            "O": "Root CA s.r.o.",
157
            "O": "Intermediate CA s.r.o.",
158 158
            "OU": "IT department",
159 159
            "ST": "Pilsen Region",
160
            "emailAddress": "root@ca.com"
160
            "emailAddress": "inter@ca.com"
161 161
        },
162 162
        "usage": {
163 163
            "CA": True,
......
175 175
    assert "data" in d
176 176
    assert d["data"] == 3
177 177
    assert "success" in d
178
    assert d["success"]
179

  
180

  
181
def test_list_of_certificates(server):
182
    ret = server.get("/api/certificates")
183

  
184
    assert ret.status_code == 200
185

  
186
    usage_dict = {'CA': True, 'SSL': True, 'authentication': True, 'digitalSignature': True}
187
    s1 = "Root CA s.r.o."
188
    s2 = "Another Root CA s.r.o."
189
    s3 = "Intermediate CA s.r.o."
190

  
191
    assert "data" in ret.json
192
    assert "success" in ret.json
193
    assert ret.json["success"]
194

  
195
    d = ret.json["data"]
196

  
197
    # print(d)
198

  
199
    assert d[0]['CN'] == s1
200
    assert d[1]['CN'] == s2
201
    assert d[2]['CN'] == s3
202

  
203
    assert all(d[i]['id'] == i + 1 for i in range(3))
204
    assert all(d[i]['usage'] == usage_dict for i in range(3))
205

  
206
    assert d[0]['issuer']['CN'] == s1
207
    assert d[1]['issuer']['CN'] == s2
208
    assert d[2]['issuer']['CN'] == s2
209

  
210
    assert d[0]['issuer']['id'] == 1
211
    assert d[1]['issuer']['id'] == 2
212
    assert d[2]['issuer']['id'] == 2
213

  
214

  
215
def test_sign_by_non_ca(server):
216
    ret = server.post("/api/certificates", content_type="application/json", json={
217
        "CA": 2,
218
        "subject": {
219
            "C": "CZ",
220
            "CN": "Fake Intermediate CA s.r.o.",
221
            "L": "Pilsen",
222
            "O": "Fake Intermediate CA s.r.o.",
223
            "OU": "IT department",
224
            "ST": "Pilsen Region",
225
            "emailAddress": "inter@ca.com"
226
        },
227
        "usage": {
228
            "CA": False,
229
            "SSL": True,
230
            "authentication": True,
231
            "digitalSignature": True
232
        },
233
        "validityDays": 30
234
    })
235

  
236
    assert ret.status_code == 201
237

  
238
    d = ret.json
239

  
240
    assert "data" in d
241
    assert d["data"] == 4
242
    assert "success" in d
243
    assert d["success"]
244

  
245
    ret = server.post("/api/certificates", content_type="application/json", json={
246
        "CA": 2,
247
        "subject": {
248
            "C": "CZ",
249
            "CN": "End certificate signed by end certificate s.r.o.",
250
            "L": "Pilsen",
251
            "O": "This is probably bad s.r.o.",
252
            "OU": "IT department",
253
            "ST": "Pilsen Region",
254
            "emailAddress": "end@ca.com"
255
        },
256
        "usage": {
257
            "CA": False,
258
            "SSL": True,
259
            "authentication": True,
260
            "digitalSignature": True
261
        },
262
        "validityDays": 30
263
    })
264

  
265
    # TODO discussion -> assert ret.status_code == 400
266
    assert ret.status_code == 201
267

  
268
    d = ret.json
269

  
270
    assert "data" in d
271
    assert d["data"] == 5
272
    assert "success" in d
178 273
    assert d["success"]

Také k dispozici: Unified diff