blob: d50b96555c1b3e39660bec1d91890a9616596e15 (
plain) (
blame)
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
|
import shutil
import tempfile
from pathlib import Path
from typing import ClassVar
from unittest import TestCase
import tests.data.test_cc_heuristics
from sec_certs.dataset import CCDataset
from sec_certs.sample import CommonCriteriaCert
class TestCommonCriteriaTextProcessing(TestCase):
dataset_json_path: ClassVar[Path] = Path(tests.data.test_cc_heuristics.__path__[0]) / "vulnerable_dataset.json"
data_dir_path: ClassVar[Path] = dataset_json_path.parent
tmp_dir: ClassVar[tempfile.TemporaryDirectory]
cc_dset: CCDataset
@classmethod
def setUpClass(cls) -> None:
cls.tmp_dir = tempfile.TemporaryDirectory()
shutil.copytree(cls.data_dir_path, cls.tmp_dir.name, dirs_exist_ok=True)
cls.cc_dset = CCDataset.from_json(Path(cls.tmp_dir.name) / "vulnerable_dataset.json")
cls.cc_dset.download_all_pdfs()
cls.cc_dset.convert_all_pdfs()
def test_extract_frontpage(self):
subject_cert: CommonCriteriaCert = list(self.cc_dset.certs.values())[0]
subject_cert.state.st_extract_ok = True
CommonCriteriaCert.extract_st_pdf_frontpage(subject_cert)
self.assertTrue(subject_cert.state.st_extract_ok, True)
subject_cert.state.report_extract_ok = True
CommonCriteriaCert.extract_report_pdf_frontpage(subject_cert)
self.assertTrue(subject_cert.state.report_extract_ok, True)
def test_keyword_extraction(self):
subject_cert: CommonCriteriaCert = list(self.cc_dset.certs.values())[0]
subject_cert.state.st_extract_ok = True
CommonCriteriaCert.extract_st_pdf_keywords(subject_cert)
self.assertTrue(subject_cert.state.st_extract_ok, True)
subject_cert.state.report_extract_ok = True
CommonCriteriaCert.extract_report_pdf_keywords(subject_cert)
self.assertTrue(subject_cert.state.report_extract_ok, True)
@classmethod
def tearDownClass(cls) -> None:
cls.tmp_dir.cleanup()
|