From 644e6dcd76d44df849de7d406047d717f93342cd Mon Sep 17 00:00:00 2001 From: David-Lor <17401854+david-lor@users.noreply.github.com> Date: Sat, 11 May 2024 13:35:43 +0200 Subject: [PATCH] refactor: use absolute imports; move tests outside package --- pyproject.toml | 2 +- tests/__init__.py | 0 {vigobus => tests}/conftest.py | 0 .../test_datasources_base.py | 0 .../test_datasources_fixers.py | 2 +- .../test_datasources_qrhtml.py | 6 +- {vigobus => tests}/test_main.py | 10 +- {vigobus => tests}/tests_data/.gitignore | 2 +- {vigobus => tests}/tests_data/README.md | 0 .../datasource_qrhtml_5800_buses_page1.html | 124 ++++++++++++++++++ .../datasource_qrhtml_5800_buses_page2.html | 124 ++++++++++++++++++ .../datasource_qrhtml_5800_buses_page3.html | 124 ++++++++++++++++++ .../datasource_qrhtml_5800_buses_page4.html | 116 ++++++++++++++++ .../datasource_qrhtml_6420_nobuses.html | 84 ++++++++++++ .../datasource_qrhtml_6860_onebus.html | 90 +++++++++++++ .../datasource_qrhtml_nonexisting.html | 84 ++++++++++++ {vigobus => tests}/tests_data/generate.sh | 0 {vigobus => tests}/tests_data/testdata.zip | Bin vigobus/datasources/base.py | 6 +- vigobus/datasources/ds_qrhtml.py | 10 +- vigobus/datasources/ds_vigoapi.py | 12 +- vigobus/datasources/ds_vigoopendata.py | 10 +- vigobus/main.py | 14 +- vigobus/models/bus.py | 2 +- vigobus/models/stop.py | 2 +- 25 files changed, 785 insertions(+), 39 deletions(-) create mode 100644 tests/__init__.py rename {vigobus => tests}/conftest.py (100%) rename vigobus/datasources/test_base.py => tests/test_datasources_base.py (100%) rename vigobus/datasources/test_fixers.py => tests/test_datasources_fixers.py (98%) rename vigobus/datasources/test_qrhtml.py => tests/test_datasources_qrhtml.py (92%) rename {vigobus => tests}/test_main.py (95%) rename {vigobus => tests}/tests_data/.gitignore (79%) rename {vigobus => tests}/tests_data/README.md (100%) create mode 100644 tests/tests_data/datasource_qrhtml_5800_buses_page1.html create mode 100644 tests/tests_data/datasource_qrhtml_5800_buses_page2.html create mode 100644 tests/tests_data/datasource_qrhtml_5800_buses_page3.html create mode 100644 tests/tests_data/datasource_qrhtml_5800_buses_page4.html create mode 100644 tests/tests_data/datasource_qrhtml_6420_nobuses.html create mode 100644 tests/tests_data/datasource_qrhtml_6860_onebus.html create mode 100644 tests/tests_data/datasource_qrhtml_nonexisting.html rename {vigobus => tests}/tests_data/generate.sh (100%) rename {vigobus => tests}/tests_data/testdata.zip (100%) diff --git a/pyproject.toml b/pyproject.toml index 516df44..9fc383f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["."] include = ["vigobus"] -exclude = ["back_tools"] +exclude = ["back_tools", "docs", "tests", "tools"] [tool.setuptools.dynamic] dependencies = {file = ["vigobus/requirements.txt"]} diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vigobus/conftest.py b/tests/conftest.py similarity index 100% rename from vigobus/conftest.py rename to tests/conftest.py diff --git a/vigobus/datasources/test_base.py b/tests/test_datasources_base.py similarity index 100% rename from vigobus/datasources/test_base.py rename to tests/test_datasources_base.py diff --git a/vigobus/datasources/test_fixers.py b/tests/test_datasources_fixers.py similarity index 98% rename from vigobus/datasources/test_fixers.py rename to tests/test_datasources_fixers.py index 98a2f35..f2db459 100644 --- a/vigobus/datasources/test_fixers.py +++ b/tests/test_datasources_fixers.py @@ -1,6 +1,6 @@ import pytest -from .fixers import Fixers +from vigobus.datasources.fixers import Fixers @pytest.mark.parametrize("line, route, expected_line, expected_route", [ diff --git a/vigobus/datasources/test_qrhtml.py b/tests/test_datasources_qrhtml.py similarity index 92% rename from vigobus/datasources/test_qrhtml.py rename to tests/test_datasources_qrhtml.py index 0de04c5..531bc79 100644 --- a/vigobus/datasources/test_qrhtml.py +++ b/tests/test_datasources_qrhtml.py @@ -5,9 +5,9 @@ import pydantic import pytest -from .ds_qrhtml import DatasourceQrHtml -from .. import Stop, StopMetadata, SourceMetadata -from ..conftest import TestMarks, Datetimes +from vigobus.datasources.ds_qrhtml import DatasourceQrHtml +from vigobus import Stop, StopMetadata, SourceMetadata +from tests.conftest import TestMarks, Datetimes class MockDatasourceQrHtml(DatasourceQrHtml): diff --git a/vigobus/test_main.py b/tests/test_main.py similarity index 95% rename from vigobus/test_main.py rename to tests/test_main.py index 93baa3b..3a4c134 100644 --- a/vigobus/test_main.py +++ b/tests/test_main.py @@ -3,11 +3,11 @@ import freezegun import pytest -from . import Stop, Position, StopMetadata, SourceMetadata, Vigobus -from .datasources.base import BaseDatasource -from .conftest import TestMarks, Datetimes -from .datasources.ds_qrhtml import DatasourceQrHtml -from .datasources.ds_vigoapi import DatasourceVigoApi +from vigobus import Stop, Position, StopMetadata, SourceMetadata, Vigobus +from vigobus.datasources.base import BaseDatasource +from tests.conftest import TestMarks, Datetimes +from vigobus.datasources.ds_qrhtml import DatasourceQrHtml +from vigobus.datasources.ds_vigoapi import DatasourceVigoApi def test_vigobus_iter_datasources(): diff --git a/vigobus/tests_data/.gitignore b/tests/tests_data/.gitignore similarity index 79% rename from vigobus/tests_data/.gitignore rename to tests/tests_data/.gitignore index 0b7faab..a2387f1 100644 --- a/vigobus/tests_data/.gitignore +++ b/tests/tests_data/.gitignore @@ -1,4 +1,4 @@ -* +README.md !README.md !generate.sh !testdata.zip diff --git a/vigobus/tests_data/README.md b/tests/tests_data/README.md similarity index 100% rename from vigobus/tests_data/README.md rename to tests/tests_data/README.md diff --git a/tests/tests_data/datasource_qrhtml_5800_buses_page1.html b/tests/tests_data/datasource_qrhtml_5800_buses_page1.html new file mode 100644 index 0000000..903a87a --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_5800_buses_page1.html @@ -0,0 +1,124 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ + + +
+ + + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 5800 +  Hora: 10:33 +
+ Rúa de Jenaro de la Fuente, 29 +
+  
+   +
+ + + + + + + + + + + + + + + + +
L.RutaMin.
APORTO - UNIVERSIDADE5
15CAvda. de Samil (frente Verbum)8
15AAvda. de Samil (Verbum)15
11SAN MIGUEL por FLORIDA17
AAvda. de García Barbón, 733
+ + + +
1234
+
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/tests/tests_data/datasource_qrhtml_5800_buses_page2.html b/tests/tests_data/datasource_qrhtml_5800_buses_page2.html new file mode 100644 index 0000000..b5c70f3 --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_5800_buses_page2.html @@ -0,0 +1,124 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ + + +
+ + + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 5800 +  Hora: 10:34 +
+ Rúa de Jenaro de la Fuente, 29 +
+  
+   +
+ + + + + + + + + + + + + + + + +
L.RutaMin.
15BAvda. de Samil (frente Verbum)33
4A COIA por CASTELAO39
15AAvda. de Samil (Verbum)47
11SAN MIGUEL por FLORIDA49
9BCOLON51
+ + + +
1234
+
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/tests/tests_data/datasource_qrhtml_5800_buses_page3.html b/tests/tests_data/datasource_qrhtml_5800_buses_page3.html new file mode 100644 index 0000000..db5b2a6 --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_5800_buses_page3.html @@ -0,0 +1,124 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ + + +
+ + + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 5800 +  Hora: 10:34 +
+ Rúa de Jenaro de la Fuente, 29 +
+  
+   +
+ + + + + + + + + + + + + + + + +
L.RutaMin.
24ESTACION TREN52
6P. ESPAÑA55
25PRAZA ESPAÑA63
15CAvda. de Samil (frente Verbum)69
15BAvda. de Samil (frente Verbum)101
+ + + +
1234
+
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/tests/tests_data/datasource_qrhtml_5800_buses_page4.html b/tests/tests_data/datasource_qrhtml_5800_buses_page4.html new file mode 100644 index 0000000..1b0d740 --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_5800_buses_page4.html @@ -0,0 +1,116 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ + + +
+ + + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 5800 +  Hora: 10:35 +
+ Rúa de Jenaro de la Fuente, 29 +
+  
+   +
+ + + + + + + + +
L.RutaMin.
4A COIA por CASTELAO105
+ + + +
1234
+
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/tests/tests_data/datasource_qrhtml_6420_nobuses.html b/tests/tests_data/datasource_qrhtml_6420_nobuses.html new file mode 100644 index 0000000..165c32e --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_6420_nobuses.html @@ -0,0 +1,84 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 6420 +  Hora: 10:37 +
+ Paseo de Alfonso XII (Mirador) +
+  
+   +
+ +
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/tests/tests_data/datasource_qrhtml_6860_onebus.html b/tests/tests_data/datasource_qrhtml_6860_onebus.html new file mode 100644 index 0000000..eea8146 --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_6860_onebus.html @@ -0,0 +1,90 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 6860 +  Hora: 01:46 +
+ Praza de Compostela +
+  
+   +
+ + + + + + +
L.RutaMin.
N1TORRECEDEIRA-SAMIL34
+
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/tests/tests_data/datasource_qrhtml_nonexisting.html b/tests/tests_data/datasource_qrhtml_nonexisting.html new file mode 100644 index 0000000..3c25a9c --- /dev/null +++ b/tests/tests_data/datasource_qrhtml_nonexisting.html @@ -0,0 +1,84 @@ + + + + + + + Sistema Siam - Estimaciones Vitrasa + + + + + + +
+
+ +
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
+   +
+ 1234 +  Hora: 10:37 +
+ Parada Inexistente +
+  
+   +
+ +
+ + +
+  
+   + +       + + + +  
+ +
+
+ + diff --git a/vigobus/tests_data/generate.sh b/tests/tests_data/generate.sh similarity index 100% rename from vigobus/tests_data/generate.sh rename to tests/tests_data/generate.sh diff --git a/vigobus/tests_data/testdata.zip b/tests/tests_data/testdata.zip similarity index 100% rename from vigobus/tests_data/testdata.zip rename to tests/tests_data/testdata.zip diff --git a/vigobus/datasources/base.py b/vigobus/datasources/base.py index da8018b..cff77a8 100644 --- a/vigobus/datasources/base.py +++ b/vigobus/datasources/base.py @@ -3,9 +3,9 @@ from typing import Optional, List -from ..models import BusesResponse, Stop -from ..exceptions import DatasourceMethodUnavailableException -from ..models.base import PosInt, NonNegFloat, NonNegInt +from vigobus.models import BusesResponse, Stop +from vigobus.exceptions import DatasourceMethodUnavailableException +from vigobus.models.base import PosInt, NonNegFloat, NonNegInt __all__ = ("BaseDatasource",) diff --git a/vigobus/datasources/ds_qrhtml.py b/vigobus/datasources/ds_qrhtml.py index 410751c..0ac0418 100644 --- a/vigobus/datasources/ds_qrhtml.py +++ b/vigobus/datasources/ds_qrhtml.py @@ -3,11 +3,11 @@ import bs4 import httpx -from .base import BaseDatasource -from .fixers import Fixers -from ..models import Bus, BusMetadata -from ..models import Stop, BusesResponse, StopMetadata, SourceMetadata -from ..utils import Utils +from vigobus.datasources.base import BaseDatasource +from vigobus.datasources.fixers import Fixers +from vigobus.models import Bus, BusMetadata +from vigobus.models import Stop, BusesResponse, StopMetadata, SourceMetadata +from vigobus.utils import Utils class DatasourceQrHtml(BaseDatasource): diff --git a/vigobus/datasources/ds_vigoapi.py b/vigobus/datasources/ds_vigoapi.py index 606081c..6a511a1 100644 --- a/vigobus/datasources/ds_vigoapi.py +++ b/vigobus/datasources/ds_vigoapi.py @@ -2,12 +2,12 @@ import pydantic -from .base import BaseDatasource -from .fixers import Fixers -from ..exceptions import StopNotExistException -from ..models import BusesResponse, Bus, Stop, StopMetadata, BusMetadata -from ..models.base import NonNegInt, PosInt, Position, SourceMetadata, NEString -from ..utils import Utils +from vigobus.datasources.base import BaseDatasource +from vigobus.datasources.fixers import Fixers +from vigobus.exceptions import StopNotExistException +from vigobus.models import BusesResponse, Bus, Stop, StopMetadata, BusMetadata +from vigobus.models.base import NonNegInt, PosInt, Position, SourceMetadata, NEString +from vigobus.utils import Utils class DatasourceVigoApi(BaseDatasource): diff --git a/vigobus/datasources/ds_vigoopendata.py b/vigobus/datasources/ds_vigoopendata.py index 4e2ea2a..c6891ff 100644 --- a/vigobus/datasources/ds_vigoopendata.py +++ b/vigobus/datasources/ds_vigoopendata.py @@ -2,11 +2,11 @@ import csv from typing import List -from .base import BaseDatasource -from .fixers import Fixers -from ..models.stop import Stop, StopMetadata -from ..models.base import BaseModel, PosInt, NEString, Position, SourceMetadata -from ..utils import Utils +from vigobus.datasources.base import BaseDatasource +from vigobus.datasources.fixers import Fixers +from vigobus.models.stop import Stop, StopMetadata +from vigobus.models.base import BaseModel, PosInt, NEString, Position, SourceMetadata +from vigobus.utils import Utils class DatasourceVigoOpenData(BaseDatasource): diff --git a/vigobus/main.py b/vigobus/main.py index 25e5149..cd072ef 100644 --- a/vigobus/main.py +++ b/vigobus/main.py @@ -2,13 +2,13 @@ import pydantic -from .datasources.base import BaseDatasource -from .datasources.ds_qrhtml import DatasourceQrHtml -from .datasources.ds_vigoapi import DatasourceVigoApi -from .datasources.ds_vigoopendata import DatasourceVigoOpenData -from .exceptions import DatasourceMethodUnavailableException, StopNotExistException -from .models import Stop, BusesResponse -from .utils import Utils, ErrorRetrier +from vigobus.datasources.base import BaseDatasource +from vigobus.datasources.ds_qrhtml import DatasourceQrHtml +from vigobus.datasources.ds_vigoapi import DatasourceVigoApi +from vigobus.datasources.ds_vigoopendata import DatasourceVigoOpenData +from vigobus.exceptions import DatasourceMethodUnavailableException, StopNotExistException +from vigobus.models import Stop, BusesResponse +from vigobus.utils import Utils, ErrorRetrier __all__ = ("Vigobus",) diff --git a/vigobus/models/bus.py b/vigobus/models/bus.py index 9ee6466..83f0df5 100644 --- a/vigobus/models/bus.py +++ b/vigobus/models/bus.py @@ -2,7 +2,7 @@ from typing import Optional, List -from .base import BaseModel, NEString, SourceMetadata, NonNegInt, NonNegFloat +from vigobus.models.base import BaseModel, NEString, SourceMetadata, NonNegInt, NonNegFloat __all__ = ("Bus", "BusMetadata", "BusesResponse") diff --git a/vigobus/models/stop.py b/vigobus/models/stop.py index 43b0656..239555a 100644 --- a/vigobus/models/stop.py +++ b/vigobus/models/stop.py @@ -1,6 +1,6 @@ from typing import Optional -from .base import BaseModel, NEString, PosInt, Position, SourceMetadata +from vigobus.models.base import BaseModel, NEString, PosInt, Position, SourceMetadata __all__ = ("StopMetadata", "Stop")