|
| 1 | +import os |
| 2 | +import subprocess |
| 3 | +import unittest |
| 4 | +import uuid |
| 5 | +from pathlib import Path |
| 6 | + |
| 7 | +import defectdojo_api_generated |
| 8 | +from defectdojo_api_generated import DefectDojo |
| 9 | +from defectdojo_api_generated.models.product_request import ProductRequest |
| 10 | +from defectdojo_api_generated.models.product_type_request import ProductTypeRequest |
| 11 | + |
| 12 | +DOJO_SCRIPTS = Path(__file__).parent.parent.parent / 'support' / 'integration' |
| 13 | + |
| 14 | + |
| 15 | +@unittest.skipUnless(os.getenv('DD_INTEGRATION_TESTS'), 'Integration tests not enabled') |
| 16 | +class Test(unittest.TestCase): |
| 17 | + @classmethod |
| 18 | + def setUpClass(cls): |
| 19 | + subprocess.check_call([DOJO_SCRIPTS / 'run_dojo.sh']) |
| 20 | + |
| 21 | + @classmethod |
| 22 | + def tearDownClass(cls): |
| 23 | + subprocess.check_call([DOJO_SCRIPTS / 'stop_dojo.sh']) |
| 24 | + |
| 25 | + def client(self, url='http://127.0.0.1:8080', user='admin', password='admin'): |
| 26 | + return DefectDojo(base_url=url, auth=(user, password)) |
| 27 | + |
| 28 | + def test_login(self): |
| 29 | + c = self.client(password='wrong') |
| 30 | + with self.assertRaises(defectdojo_api_generated.exceptions.ForbiddenException): |
| 31 | + c.user_profile_api.user_profile_retrieve() |
| 32 | + |
| 33 | + def test_init(self): |
| 34 | + c = self.client() |
| 35 | + uniq = str(uuid.uuid4()) |
| 36 | + pt = c.product_types_api.product_types_create(product_type_request=ProductTypeRequest(name=f'Test {uniq}')) |
| 37 | + c.products_api.products_create( |
| 38 | + product_request=ProductRequest(name=f'Product {uniq}', description='test', prod_type=pt.id) |
| 39 | + ) |
| 40 | + # TODO: do e2e test for importing a report - just call reimport with a sample report and assert findings |
0 commit comments