diff options
| author | J08nY | 2022-10-03 19:30:34 +0200 |
|---|---|---|
| committer | J08nY | 2022-10-04 14:41:18 +0200 |
| commit | e2829a09bb667b855997e8e8966fc8e4f17a22dd (patch) | |
| tree | e4c89deebfbddcfc3afd358334fed77a7caea4b8 | |
| parent | 734cbe49675183feab7f18fb083e33a3f1d826e1 (diff) | |
| download | sec-certs-e2829a09bb667b855997e8e8966fc8e4f17a22dd.tar.gz sec-certs-e2829a09bb667b855997e8e8966fc8e4f17a22dd.tar.zst sec-certs-e2829a09bb667b855997e8e8966fc8e4f17a22dd.zip | |
Add new CC cert state attributes.
| -rw-r--r-- | sec_certs/sample/common_criteria.py | 43 | ||||
| -rw-r--r-- | tests/data/test_cc_oop/fictional_cert.json | 14 | ||||
| -rw-r--r-- | tests/data/test_cc_oop/toy_dataset.json | 28 |
3 files changed, 54 insertions, 31 deletions
diff --git a/sec_certs/sample/common_criteria.py b/sec_certs/sample/common_criteria.py index 4bdd44ab..a9298eab 100644 --- a/sec_certs/sample/common_criteria.py +++ b/sec_certs/sample/common_criteria.py @@ -104,16 +104,18 @@ class CommonCriteriaCert( @dataclass(init=False) class InternalState(ComplexSerializableType): """ - Holds internal state of the dataset, whether downloads and converts of individual components succeeded. Also + Holds internal state of the certificate, whether downloads and converts of individual components succeeded. Also holds information about errors and paths to the files. """ - st_download_ok: bool - report_download_ok: bool - st_convert_ok: bool - report_convert_ok: bool - st_extract_ok: bool - report_extract_ok: bool + st_download_ok: bool # Whether target download went OK + report_download_ok: bool # Whether report download went OK + st_convert_garbage: bool # Whether initial target conversion resulted in garbage + report_convert_garbage: bool # Whether initial report conversion resulted in garbage + st_convert_ok: bool # Whether overall target conversion went OK (either pdftotext or via OCR) + report_convert_ok: bool # Whether overall report conversion went OK (either pdftotext or via OCR) + st_extract_ok: bool # Whether target extraction went OK + report_extract_ok: bool # Whether report extraction went OK errors: List[str] @@ -129,20 +131,25 @@ class CommonCriteriaCert( def __init__( self, - st_download_ok: bool = True, - report_download_ok: bool = True, - st_convert_ok: bool = True, - report_convert_ok: bool = True, - st_extract_ok: bool = True, - report_extract_ok: bool = True, + st_download_ok: bool = False, + report_download_ok: bool = False, + st_convert_garbage: bool = False, + report_convert_garbage: bool = False, + st_convert_ok: bool = False, + report_convert_ok: bool = False, + st_extract_ok: bool = False, + report_extract_ok: bool = False, errors: Optional[List[str]] = None, st_pdf_hash: Optional[str] = None, report_pdf_hash: Optional[str] = None, st_txt_hash: Optional[str] = None, report_txt_hash: Optional[str] = None, ): + super().__init__() self.st_download_ok = st_download_ok self.report_download_ok = report_download_ok + self.st_convert_garbage = st_convert_garbage + self.report_convert_garbage = report_convert_garbage self.st_convert_ok = st_convert_ok self.report_convert_ok = report_convert_ok self.st_extract_ok = st_extract_ok @@ -158,6 +165,8 @@ class CommonCriteriaCert( return [ "st_download_ok", "report_download_ok", + "st_convert_garbage", + "report_convert_garbage", "st_convert_ok", "report_convert_ok", "st_extract_ok", @@ -797,6 +806,7 @@ class CommonCriteriaCert( cert.state.report_download_ok = False cert.state.errors.append(error_msg) else: + cert.state.report_download_ok = True cert.state.report_pdf_hash = helpers.get_sha256_filepath(cert.state.report_pdf_path) cert.pdf_data.report_filename = unquote_plus(str(urlparse(cert.report_link).path).split("/")[-1]) return cert @@ -820,6 +830,7 @@ class CommonCriteriaCert( cert.state.st_download_ok = False cert.state.errors.append(error_msg) else: + cert.state.st_download_ok = True cert.state.st_pdf_hash = helpers.get_sha256_filepath(cert.state.st_pdf_path) cert.pdf_data.st_filename = unquote_plus(str(urlparse(cert.st_link).path).split("/")[-1]) return cert @@ -839,6 +850,7 @@ class CommonCriteriaCert( cert.state.report_convert_ok = False cert.state.errors.append(error_msg) else: + cert.state.report_convert_ok = True cert.state.report_txt_hash = helpers.get_sha256_filepath(cert.state.report_txt_path) return cert @@ -857,6 +869,7 @@ class CommonCriteriaCert( cert.state.st_convert_ok = False cert.state.errors.append(error_msg) else: + cert.state.st_convert_ok = True cert.state.st_txt_hash = helpers.get_sha256_filepath(cert.state.st_txt_path) return cert @@ -872,6 +885,8 @@ class CommonCriteriaCert( if response != constants.RETURNCODE_OK: cert.state.st_extract_ok = False cert.state.errors.append(response) + else: + cert.state.st_extract_ok = True return cert @staticmethod @@ -886,6 +901,8 @@ class CommonCriteriaCert( if response != constants.RETURNCODE_OK: cert.state.report_extract_ok = False cert.state.errors.append(response) + else: + cert.state.report_extract_ok = True return cert @staticmethod diff --git a/tests/data/test_cc_oop/fictional_cert.json b/tests/data/test_cc_oop/fictional_cert.json index 2b52af75..117f87d2 100644 --- a/tests/data/test_cc_oop/fictional_cert.json +++ b/tests/data/test_cc_oop/fictional_cert.json @@ -41,12 +41,14 @@ }, "state": { "_type": "sec_certs.sample.common_criteria.CommonCriteriaCert.InternalState", - "st_download_ok": true, - "report_download_ok": true, - "st_convert_ok": true, - "report_convert_ok": true, - "st_extract_ok": true, - "report_extract_ok": true, + "st_download_ok": false, + "report_download_ok": false, + "st_convert_garbage": false, + "report_convert_garbage": false, + "st_convert_ok": false, + "report_convert_ok": false, + "st_extract_ok": false, + "report_extract_ok": false, "errors": [], "st_pdf_hash": null, "report_pdf_hash": null, diff --git a/tests/data/test_cc_oop/toy_dataset.json b/tests/data/test_cc_oop/toy_dataset.json index 19f22405..cb733b0c 100644 --- a/tests/data/test_cc_oop/toy_dataset.json +++ b/tests/data/test_cc_oop/toy_dataset.json @@ -44,12 +44,14 @@ }, "state": { "_type": "sec_certs.sample.common_criteria.CommonCriteriaCert.InternalState", - "st_download_ok": true, - "report_download_ok": true, - "st_convert_ok": true, - "report_convert_ok": true, - "st_extract_ok": true, - "report_extract_ok": true, + "st_download_ok": false, + "report_download_ok": false, + "st_convert_garbage": false, + "report_convert_garbage": false, + "st_convert_ok": false, + "report_convert_ok": false, + "st_extract_ok": false, + "report_extract_ok": false, "errors": [], "st_pdf_hash": null, "report_pdf_hash": null, @@ -130,12 +132,14 @@ }, "state": { "_type": "sec_certs.sample.common_criteria.CommonCriteriaCert.InternalState", - "st_download_ok": true, - "report_download_ok": true, - "st_convert_ok": true, - "report_convert_ok": true, - "st_extract_ok": true, - "report_extract_ok": true, + "st_download_ok": false, + "report_download_ok": false, + "st_convert_garbage": false, + "report_convert_garbage": false, + "st_convert_ok": false, + "report_convert_ok": false, + "st_extract_ok": false, + "report_extract_ok": false, "errors": [], "st_pdf_hash": null, "report_pdf_hash": null, |
