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
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+
+
+
+
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")