From 7e161b801450d5b0ab2d2779a09395831794af15 Mon Sep 17 00:00:00 2001 From: Viktor Andersson <30777521+VIKTORVAV99@users.noreply.github.com> Date: Thu, 30 Jun 2022 09:28:16 +0200 Subject: [PATCH] add ceuta and melilla --- ree/__init__.py | 1 + ree/cities/__init__.py | 2 ++ ree/cities/ceuta.py | 17 +++++++++++++++++ ree/cities/melilla.py | 17 +++++++++++++++++ tests/cities/test_ceuta.py | 30 ++++++++++++++++++++++++++++++ tests/cities/test_melilla.py | 31 +++++++++++++++++++++++++++++++ 6 files changed, 98 insertions(+) create mode 100644 ree/cities/__init__.py create mode 100644 ree/cities/ceuta.py create mode 100644 ree/cities/melilla.py create mode 100644 tests/cities/test_ceuta.py create mode 100644 tests/cities/test_melilla.py diff --git a/ree/__init__.py b/ree/__init__.py index 155982b..e450aa9 100644 --- a/ree/__init__.py +++ b/ree/__init__.py @@ -5,3 +5,4 @@ from .balearic import Mallorca, Menorca, Ibiza, Formentera from .balearicislands import BalearicIslands from .iberianpeninsula import IberianPeninsula +from .cities import Ceuta, Melilla diff --git a/ree/cities/__init__.py b/ree/cities/__init__.py new file mode 100644 index 0000000..24bc653 --- /dev/null +++ b/ree/cities/__init__.py @@ -0,0 +1,2 @@ +from .ceuta import Ceuta +from .melilla import Melilla \ No newline at end of file diff --git a/ree/cities/ceuta.py b/ree/cities/ceuta.py new file mode 100644 index 0000000..8ba7a77 --- /dev/null +++ b/ree/cities/ceuta.py @@ -0,0 +1,17 @@ +from typing import Union + +from requests import Session + +from ..core import Scraper + + +class Ceuta(Scraper): + + def __init__(self, session: Union[Session, None]=None, verify=True): + super(self.__class__, self).__init__(session, verify) + + def get(self, date: Union[str, None]=None, last=True): + return super(self.__class__, self).get("CEUTA5M", "Europe/Madrid", "Peninsula", date, last) + + def get_all(self, date: Union[str, None]=None): + return self.get(date, False) diff --git a/ree/cities/melilla.py b/ree/cities/melilla.py new file mode 100644 index 0000000..290abf0 --- /dev/null +++ b/ree/cities/melilla.py @@ -0,0 +1,17 @@ +from typing import Union + +from requests import Session + +from ..core import Scraper + + +class Melilla(Scraper): + + def __init__(self, session: Union[Session, None]=None, verify=True): + super(self.__class__, self).__init__(session, verify) + + def get(self, date: Union[str, None]=None, last=True): + return super(self.__class__, self).get("MELILLA5M", "Europe/Madrid", "Peninsula", date, last) + + def get_all(self, date: Union[str, None]=None): + return self.get(date, False) diff --git a/tests/cities/test_ceuta.py b/tests/cities/test_ceuta.py new file mode 100644 index 0000000..110806d --- /dev/null +++ b/tests/cities/test_ceuta.py @@ -0,0 +1,30 @@ +import unittest + +from arrow import get + +from ree import Ceuta, Response + + +class TestCeuta(unittest.TestCase): + + def setUp(self): + self.instance = Ceuta() + self.date = get('2022-06-20').format('YYYY-MM-DD') + + def test_instance(self): + self.assertIsInstance(self.instance, Ceuta) + + def test_get(self): + response = self.instance.get(self.date) + self.assertIsInstance(response, Response) + self.assertIsNotNone(response.timestamp) + self.assertEqual(response.demand, 18.9) + self.assertEqual(response.diesel, 19.83) + + def test_get_all(self): + responses = self.instance.get_all() + self.assertIsNotNone(responses) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/cities/test_melilla.py b/tests/cities/test_melilla.py new file mode 100644 index 0000000..0416c8c --- /dev/null +++ b/tests/cities/test_melilla.py @@ -0,0 +1,31 @@ +import unittest + +from arrow import get + +from ree import Melilla, Response + + +class TestCeuta(unittest.TestCase): + + def setUp(self): + self.instance = Melilla() + self.date = get('2022-06-20').format('YYYY-MM-DD') + + def test_instance(self): + self.assertIsInstance(self.instance, Melilla) + + def test_get(self): + response = self.instance.get(self.date) + self.assertIsInstance(response, Response) + self.assertIsNotNone(response.timestamp) + self.assertEqual(response.demand, 16.9) + self.assertEqual(response.diesel, 9.13) + self.assertEqual(response.waste, 1.86) + + def test_get_all(self): + responses = self.instance.get_all() + self.assertIsNotNone(responses) + + +if __name__ == '__main__': + unittest.main()