Newer
Older
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
54
55
56
57
58
"""Test case for Mapping creation"""
import unittest
import json
import os
import requests
HOST = os.getenv("HOST", default="localhost")
PORT = os.getenv("PORT", default="8080")
API_KEY = os.getenv("API_KEY", "only4testingpurpose")
class TestCertificateCreation(unittest.TestCase):
"""Test case for Mapping creation class"""
mapping_id = None
def test_that_certificate_is_created(self) -> None:
"""Test that certificate is created"""
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"ca": "letsencrypt",
"expiration_time": "1m"
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 201)
self.mapping_id = json.loads(response.content)["id"]
def test_that_cn_is_unique(self) -> None:
"""Test that CN is unique"""
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"ca": "letsencrypt",
"expiration_time": "1m"
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 201)
self.mapping_id = json.loads(response.content)["id"]
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"expiration_time": "3m"
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.content, b'{"cn":["certificate with this Common Name already exists."]}')
def test_that_ca_is_valid(self) -> None:
"""Test that CA is valid"""
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"ca": "randomca",
"expiration_time": "3m"
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.content, b'{"ca":["\\"randomca\\" is not a valid choice."]}')
def test_that_expiration_time_is_valid(self) -> None:
"""Test that expiration time is valid"""
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"expiration_time": "10m"
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.content, b'{"expiration_time":["\\"10m\\" is not a valid choice."]}')
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
def test_that_alt_name_is_an_array(self) -> None:
"""Test that Alt name is an array"""
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"ca": "letsencrypt",
"expiration_time": "1m",
"alt_name": "truc01.com"
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 400)
self.assertEqual(response.content, b'{"alt_name":["Expected a list of items but got type \\"str\\"."]}')
def test_that_certificate_is_created_with_alt_name(self) -> None:
"""Test that certificate is created"""
response = requests.post(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json={
"cn": "truc00.com",
"ca": "letsencrypt",
"expiration_time": "1m",
"alt_name": ["192.168.1.1", "truc01.com"]
},
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
self.assertEqual(response.status_code, 201)
self.mapping_id = json.loads(response.content)["id"]
def tearDown(self) -> None:
"""Teardown function"""
requests.delete(
url=f"http://{HOST}:{PORT}/api/plugins/cert/certificate/",
json=[{"id": self.mapping_id}],
headers={"Authorization": f"Token {API_KEY}"},
timeout=5,
)
if __name__ == "__main__":
unittest.main()