From 8f638f73409b0e1393581a5c561cf44ce6a150bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Sat, 29 Jun 2024 15:55:40 +0000 Subject: [PATCH] all tests to unittest + formatting formatting formatting --- .gitignore | 2 +- .xsdata.xml | 4 +-- tests/cte/test_cte.py | 39 +++++++++++---------- tests/mdfe/test_mdfe.py | 39 +++++++++++---------- tests/nfe_evento_cce/test_cce.py | 36 ++++++++++--------- tests/nfse/test_nfse.py | 4 +-- tests/test_all.py | 7 ---- tests/test_fingerprint.py | 59 +++++++++++++++++--------------- 8 files changed, 96 insertions(+), 94 deletions(-) diff --git a/.gitignore b/.gitignore index dd142967..9ef94acb 100644 --- a/.gitignore +++ b/.gitignore @@ -69,4 +69,4 @@ docs/_build/ # Backup files *~ -*.swp \ No newline at end of file +*.swp diff --git a/.xsdata.xml b/.xsdata.xml index 214aa5b8..657f8fff 100644 --- a/.xsdata.xml +++ b/.xsdata.xml @@ -30,11 +30,11 @@ - + - + diff --git a/tests/cte/test_cte.py b/tests/cte/test_cte.py index 54963906..f6789686 100644 --- a/tests/cte/test_cte.py +++ b/tests/cte/test_cte.py @@ -2,32 +2,33 @@ import os from xmldiff import main +from unittest import TestCase from xsdata.formats.dataclass.serializers.config import SerializerConfig from xsdata.formats.dataclass.parsers import XmlParser from xsdata.formats.dataclass.serializers import XmlSerializer from pathlib import Path -from nfelib.cte.bindings import v4_0 +from nfelib.cte.bindings import v4_0 # noqa: F401 -def test_in_out_cte(): - path = os.path.join("nfelib", "cte", "samples", "v4_0") - for filename in os.listdir(path): - input_file = os.path.join(path, filename) - parser = XmlParser() - obj = parser.from_path(Path(input_file)) - serializer = XmlSerializer(config=SerializerConfig(pretty_print=True)) - xml = serializer.render( - obj=obj, - ns_map={None: "http://www.portalfiscal.inf.br/cte"} - ) +class CTeTests(TestCase): + def test_in_out_cte(self): + path = os.path.join("nfelib", "cte", "samples", "v4_0") + for filename in os.listdir(path): + input_file = os.path.join(path, filename) + parser = XmlParser() + obj = parser.from_path(Path(input_file)) + serializer = XmlSerializer(config=SerializerConfig(pretty_print=True)) + xml = serializer.render( + obj=obj, ns_map={None: "http://www.portalfiscal.inf.br/cte"} + ) - output_file = "tests/output_cte.xml" - with open(output_file, "w") as f: - f.write(xml) + output_file = "tests/output_cte.xml" + with open(output_file, "w") as f: + f.write(xml) - diff = main.diff_files(input_file, output_file) - assert len(diff) == 0 - if len(diff) != 0: - break + diff = main.diff_files(input_file, output_file) + self.assertEqual(len(diff), 0) + if len(diff) != 0: + break diff --git a/tests/mdfe/test_mdfe.py b/tests/mdfe/test_mdfe.py index 88b1f82d..08a3c926 100644 --- a/tests/mdfe/test_mdfe.py +++ b/tests/mdfe/test_mdfe.py @@ -2,32 +2,33 @@ import os from xmldiff import main +from unittest import TestCase from xsdata.formats.dataclass.serializers.config import SerializerConfig from xsdata.formats.dataclass.parsers import XmlParser from xsdata.formats.dataclass.serializers import XmlSerializer from pathlib import Path -from nfelib.mdfe.bindings import v3_0 +from nfelib.mdfe.bindings import v3_0 # noqa: F401 -def test_in_out_mdfe(): - path = os.path.join("nfelib", "mdfe", "samples", "v3_0") - for filename in os.listdir(path): - input_file = os.path.join(path, filename) - parser = XmlParser() - obj = parser.from_path(Path(input_file)) - serializer = XmlSerializer(config=SerializerConfig(pretty_print=True)) - xml = serializer.render( - obj=obj, - ns_map={None: "http://www.portalfiscal.inf.br/mdfe"} - ) +class MDFeTests(TestCase): + def test_in_out_mdfe(self): + path = os.path.join("nfelib", "mdfe", "samples", "v3_0") + for filename in os.listdir(path): + input_file = os.path.join(path, filename) + parser = XmlParser() + obj = parser.from_path(Path(input_file)) + serializer = XmlSerializer(config=SerializerConfig(pretty_print=True)) + xml = serializer.render( + obj=obj, ns_map={None: "http://www.portalfiscal.inf.br/mdfe"} + ) - output_file = "tests/output_mdfe.xml" - with open(output_file, "w") as f: - f.write(xml) + output_file = "tests/output_mdfe.xml" + with open(output_file, "w") as f: + f.write(xml) - diff = main.diff_files(input_file, output_file) - assert len(diff) == 0 - if len(diff) != 0: - break + diff = main.diff_files(input_file, output_file) + self.assertEqual(len(diff), 0) + if len(diff) != 0: + break diff --git a/tests/nfe_evento_cce/test_cce.py b/tests/nfe_evento_cce/test_cce.py index 811e7b1b..8f7c2def 100644 --- a/tests/nfe_evento_cce/test_cce.py +++ b/tests/nfe_evento_cce/test_cce.py @@ -2,6 +2,7 @@ import os from xmldiff import main +from unittest import TestCase from xsdata.formats.dataclass.serializers.config import SerializerConfig from xsdata.formats.dataclass.parsers import XmlParser @@ -11,22 +12,23 @@ from nfelib.nfe_evento_cce.bindings.v1_0.cce_v1_00 import Evento -def test_in_out_leiauteCCe(): - path = os.path.join("nfelib", "nfe_evento_cce", "samples", "v1_0") - for filename in os.listdir(path): - input_file = os.path.join(path, filename) - parser = XmlParser() - obj = parser.from_path(Path(input_file), Evento) - serializer = XmlSerializer(config=SerializerConfig(pretty_print=True)) - xml = serializer.render( - obj=obj, ns_map={None: "http://www.portalfiscal.inf.br/nfe"} - ) +class CCeTests(TestCase): + def test_in_out_leiauteCCe(self): + path = os.path.join("nfelib", "nfe_evento_cce", "samples", "v1_0") + for filename in os.listdir(path): + input_file = os.path.join(path, filename) + parser = XmlParser() + obj = parser.from_path(Path(input_file), Evento) + serializer = XmlSerializer(config=SerializerConfig(pretty_print=True)) + xml = serializer.render( + obj=obj, ns_map={None: "http://www.portalfiscal.inf.br/nfe"} + ) - output_file = "tests/output_nfe_evento_cce.xml" - with open(output_file, "w") as f: - f.write(xml) + output_file = "tests/output_nfe_evento_cce.xml" + with open(output_file, "w") as f: + f.write(xml) - diff = main.diff_files(input_file, output_file) - assert len(diff) == 0 - if len(diff) != 0: - break + diff = main.diff_files(input_file, output_file) + self.assertEqual(len(diff), 0) + if len(diff) != 0: + break diff --git a/tests/nfse/test_nfse.py b/tests/nfse/test_nfse.py index 0d8831e3..f08159fc 100644 --- a/tests/nfse/test_nfse.py +++ b/tests/nfse/test_nfse.py @@ -9,8 +9,8 @@ from xsdata.formats.dataclass.serializers import XmlSerializer from pathlib import Path -from nfelib.nfse.bindings.v1_0 import nfse_v1_00 -from nfelib.nfse.bindings.v1_0 import dps_v1_00 +from nfelib.nfse.bindings.v1_0 import nfse_v1_00 # noqa: F401 +from nfelib.nfse.bindings.v1_0 import dps_v1_00 # noqa: F401 class NFseTests(TestCase): diff --git a/tests/test_all.py b/tests/test_all.py index f14e1433..e22ae786 100644 --- a/tests/test_all.py +++ b/tests/test_all.py @@ -1,16 +1,9 @@ # Copyright (C) 2019 - TODAY Raphaƫl Valyi - Akretion -import os -import sys import importlib import inspect from enum import EnumMeta -from xmldiff import main -from xsdata.formats.dataclass.serializers.config import SerializerConfig -from xsdata.formats.dataclass.parsers import XmlParser -from xsdata.formats.dataclass.serializers import XmlSerializer -from pathlib import Path import pkgutil import logging diff --git a/tests/test_fingerprint.py b/tests/test_fingerprint.py index 84a2031f..03aff009 100755 --- a/tests/test_fingerprint.py +++ b/tests/test_fingerprint.py @@ -1,7 +1,9 @@ +from unittest import TestCase + import hashlib import json import logging -from os import environ, path +from os import environ from pathlib import Path import requests @@ -39,33 +41,36 @@ } -def test_fingerprint(): - if environ.get("SKIP_FINGERPRINT"): - _logger.info("Skipping fingerprint test") - return True - fingerprint = {} - for code, scrap_params in PAGES.items(): - url = scrap_params[0] - md5 = "ELEMENT NOT FOUND" - _logger.info("Fetching %s ..." % (url,)) - if len(scrap_params) > 1: - page = requests.get(url, headers=HEADERS) - soup = BeautifulSoup(page.text, "html.parser") - if scrap_params[2] == "id" and soup.find( +class FingerPrintTests(TestCase): + def test_fingerprint(self): + if environ.get("SKIP_FINGERPRINT"): + _logger.info("Skipping fingerprint test") + return True + fingerprint = {} + for code, scrap_params in PAGES.items(): + url = scrap_params[0] + md5 = "ELEMENT NOT FOUND" + _logger.info("Fetching %s ..." % (url,)) + if len(scrap_params) > 1: + page = requests.get(url, headers=HEADERS) + soup = BeautifulSoup(page.text, "html.parser") + if scrap_params[2] == "id" and soup.find( scrap_params[1], {"id": scrap_params[3]} ): - fragment = soup.find( - scrap_params[1], {"id": scrap_params[3]} - ).text.encode("utf-8") + fragment = soup.find( + scrap_params[1], {"id": scrap_params[3]} + ).text.encode("utf-8") + md5 = hashlib.md5(fragment).hexdigest() + else: + fragment = requests.get( + url, headers=HEADERS + ).content # .decode('utf-8') md5 = hashlib.md5(fragment).hexdigest() - else: - fragment = requests.get(url, headers=HEADERS).content # .decode('utf-8') - md5 = hashlib.md5(fragment).hexdigest() - fingerprint[code] = (url, md5) + fingerprint[code] = (url, md5) - _logger.info(fingerprint) - json_string = json.dumps(fingerprint, indent=4) - target = Path("tests/fingerprint.txt").read_text() - with open("tests/fingerprint.txt", "w") as outfile: - outfile.write(json_string) - assert target.strip() == json_string.strip() + _logger.info(fingerprint) + json_string = json.dumps(fingerprint, indent=4) + target = Path("tests/fingerprint.txt").read_text() + with open("tests/fingerprint.txt", "w") as outfile: + outfile.write(json_string) + self.assertEqual(target.strip(), json_string.strip())