pygazpar 1.2.8__py313-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tests/test_client.py ADDED
@@ -0,0 +1,159 @@
1
+ from pygazpar.enum import Frequency
2
+ from pygazpar.client import Client
3
+ from pygazpar.datasource import JsonWebDataSource, TestDataSource, ExcelWebDataSource
4
+ import os
5
+ import pytest
6
+
7
+
8
+ class TestClient:
9
+
10
+ @classmethod
11
+ def setup_class(cls):
12
+ """ setup any state specific to the execution of the given class (which
13
+ usually contains tests).
14
+ """
15
+
16
+ @classmethod
17
+ def teardown_class(cls):
18
+ """ teardown any state that was previously setup with a call to
19
+ setup_class.
20
+ """
21
+
22
+ def setup_method(self):
23
+ """ setup any state tied to the execution of the given method in a
24
+ class. setup_method is invoked for every test method of a class.
25
+ """
26
+ tmpdir = os.path.normpath(f"{os.getcwd()}/tmp")
27
+
28
+ # We create the tmp directory if not already exists.
29
+ if not os.path.exists(tmpdir):
30
+ os.mkdir(tmpdir)
31
+
32
+ self.__username = os.environ["GRDF_USERNAME"]
33
+ self.__password = os.environ["GRDF_PASSWORD"]
34
+ self.__pceIdentifier = os.environ["PCE_IDENTIFIER"]
35
+ self.__tmp_directory = tmpdir
36
+
37
+ def teardown_method(self):
38
+ """ teardown any state that was previously setup with a setup_method
39
+ call.
40
+ """
41
+
42
+ def test_login_error(self):
43
+ client = Client(JsonWebDataSource("WrongUsername", "WrongPassword"))
44
+
45
+ with pytest.raises(Exception):
46
+ client.loadSince(self.__pceIdentifier, 365, [Frequency.DAILY])
47
+
48
+ def test_hourly_live(self):
49
+ client = Client(JsonWebDataSource(self.__username, self.__password))
50
+
51
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.HOURLY])
52
+
53
+ assert (len(data[Frequency.HOURLY.value]) == 0)
54
+
55
+ def test_one_day_jsonweb(self):
56
+ client = Client(JsonWebDataSource(self.__username, self.__password))
57
+
58
+ data = client.loadSince(self.__pceIdentifier, 1, [Frequency.DAILY])
59
+
60
+ assert (len(data[Frequency.DAILY.value]) <= 1)
61
+
62
+ def test_two_days_jsonweb(self):
63
+ client = Client(JsonWebDataSource(self.__username, self.__password))
64
+
65
+ data = client.loadSince(self.__pceIdentifier, 2, [Frequency.DAILY])
66
+
67
+ assert (len(data[Frequency.DAILY.value]) <= 2)
68
+
69
+ # @pytest.mark.skip(reason="Requires live data")
70
+ def test_daily_jsonweb(self):
71
+ client = Client(JsonWebDataSource(self.__username, self.__password))
72
+
73
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.DAILY])
74
+
75
+ assert (len(data[Frequency.DAILY.value]) > 0)
76
+
77
+ def test_weekly_jsonweb(self):
78
+ client = Client(JsonWebDataSource(self.__username, self.__password))
79
+
80
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.WEEKLY])
81
+
82
+ assert (len(data[Frequency.WEEKLY.value]) >= 51 and len(data[Frequency.WEEKLY.value]) <= 54)
83
+
84
+ def test_monthly_jsonweb(self):
85
+ client = Client(JsonWebDataSource(self.__username, self.__password))
86
+
87
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.MONTHLY])
88
+
89
+ assert (len(data[Frequency.MONTHLY.value]) >= 11 and len(data[Frequency.MONTHLY.value]) <= 13)
90
+
91
+ def test_yearly_jsonweb(self):
92
+ client = Client(JsonWebDataSource(self.__username, self.__password))
93
+
94
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.YEARLY])
95
+
96
+ assert (len(data[Frequency.YEARLY.value]) >= 1)
97
+
98
+ def test_daily_excelweb(self):
99
+ client = Client(ExcelWebDataSource(self.__username, self.__password, self.__tmp_directory))
100
+
101
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.DAILY])
102
+
103
+ assert (len(data[Frequency.DAILY.value]) > 0)
104
+
105
+ def test_weekly_excelweb(self):
106
+ client = Client(ExcelWebDataSource(self.__username, self.__password, self.__tmp_directory))
107
+
108
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.WEEKLY])
109
+
110
+ assert (len(data[Frequency.WEEKLY.value]) >= 51 and len(data[Frequency.WEEKLY.value]) <= 54)
111
+
112
+ def test_monthly_excelweb(self):
113
+ client = Client(ExcelWebDataSource(self.__username, self.__password, self.__tmp_directory))
114
+
115
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.MONTHLY])
116
+
117
+ assert (len(data[Frequency.MONTHLY.value]) >= 12 and len(data[Frequency.MONTHLY.value]) <= 13)
118
+
119
+ def test_yearly_excelweb(self):
120
+ client = Client(ExcelWebDataSource(self.__username, self.__password, self.__tmp_directory))
121
+
122
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.YEARLY])
123
+
124
+ assert (len(data[Frequency.YEARLY.value]) >= 1)
125
+
126
+ def test_hourly_sample(self):
127
+ client = Client(TestDataSource())
128
+
129
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.HOURLY])
130
+
131
+ assert (len(data[Frequency.HOURLY.value]) == 0)
132
+
133
+ def test_daily_sample(self):
134
+ client = Client(TestDataSource())
135
+
136
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.DAILY])
137
+
138
+ assert (len(data[Frequency.DAILY.value]) == 711)
139
+
140
+ def test_weekly_sample(self):
141
+ client = Client(TestDataSource())
142
+
143
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.WEEKLY])
144
+
145
+ assert (len(data[Frequency.WEEKLY.value]) > 0)
146
+
147
+ def test_monthly_sample(self):
148
+ client = Client(TestDataSource())
149
+
150
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.MONTHLY])
151
+
152
+ assert (len(data[Frequency.MONTHLY.value]) > 0)
153
+
154
+ def test_yearly_sample(self):
155
+ client = Client(TestDataSource())
156
+
157
+ data = client.loadSince(self.__pceIdentifier, 365, [Frequency.YEARLY])
158
+
159
+ assert (len(data[Frequency.YEARLY.value]) == 2)
@@ -0,0 +1,20 @@
1
+ from pygazpar.excelparser import ExcelParser
2
+ from pygazpar.enum import Frequency
3
+
4
+
5
+ class TestDataFileParser:
6
+
7
+ # ------------------------------------------------------
8
+ def test_daily_sample(self):
9
+ data = ExcelParser.parse("tests/resources/Donnees_informatives_PCE_DAILY.xlsx", Frequency.DAILY)
10
+ assert (len(data) == 363)
11
+
12
+ # ------------------------------------------------------
13
+ def test_weekly_sample(self):
14
+ data = ExcelParser.parse("tests/resources/Donnees_informatives_PCE_WEEKLY.xlsx", Frequency.WEEKLY)
15
+ assert (len(data) == 53)
16
+
17
+ # ------------------------------------------------------
18
+ def test_monthly_sample(self):
19
+ data = ExcelParser.parse("tests/resources/Donnees_informatives_PCE_MONTHLY.xlsx", Frequency.MONTHLY)
20
+ assert (len(data) == 13)
@@ -0,0 +1,166 @@
1
+ import os
2
+ from pygazpar.datasource import TestDataSource, JsonFileDataSource, ExcelFileDataSource, JsonWebDataSource, ExcelWebDataSource
3
+ from pygazpar.enum import Frequency
4
+ from datetime import date, timedelta
5
+ from dotenv import load_dotenv
6
+
7
+
8
+ class TestAllDataSource:
9
+
10
+ # ------------------------------------------------------
11
+ @classmethod
12
+ def setup_class(cls):
13
+ """ setup any state specific to the execution of the given class (which
14
+ usually contains tests).
15
+ """
16
+
17
+ # ------------------------------------------------------
18
+ @classmethod
19
+ def teardown_class(cls):
20
+ """ teardown any state that was previously setup with a call to
21
+ setup_class.
22
+ """
23
+
24
+ # ------------------------------------------------------
25
+ def setup_method(self):
26
+ """ setup any state tied to the execution of the given method in a
27
+ class. setup_method is invoked for every test method of a class.
28
+ """
29
+ tmpdir = os.path.normpath(f"{os.getcwd()}/tmp")
30
+
31
+ # We create the tmp directory if not already exists.
32
+ if not os.path.exists(tmpdir):
33
+ os.mkdir(tmpdir)
34
+
35
+ load_dotenv()
36
+
37
+ self.__username = os.environ["GRDF_USERNAME"]
38
+ self.__password = os.environ["GRDF_PASSWORD"]
39
+ self.__pceIdentifier = os.environ["PCE_IDENTIFIER"]
40
+ self.__tmp_directory = tmpdir
41
+
42
+ # ------------------------------------------------------
43
+ def teardown_method(self):
44
+ """ teardown any state that was previously setup with a setup_method
45
+ call.
46
+ """
47
+
48
+ # ------------------------------------------------------
49
+ def test_sample(self):
50
+
51
+ dataSource = TestDataSource()
52
+
53
+ endDate = date.today()
54
+ startDate = endDate + timedelta(days=-365)
55
+
56
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate)
57
+
58
+ assert (len(data[Frequency.DAILY.value]) == 711)
59
+
60
+ assert (len(data[Frequency.WEEKLY.value]) == 102)
61
+
62
+ assert (len(data[Frequency.MONTHLY.value]) == 24)
63
+
64
+ assert (len(data[Frequency.YEARLY.value]) == 2)
65
+
66
+ # ------------------------------------------------------
67
+ def test_jsonfile_sample(self):
68
+
69
+ dataSource = JsonFileDataSource("tests/resources/donnees_informatives.json", "tests/resources/temperatures.json")
70
+
71
+ endDate = date.today()
72
+ startDate = endDate + timedelta(days=-365)
73
+
74
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.DAILY, Frequency.WEEKLY, Frequency.MONTHLY, Frequency.YEARLY])
75
+
76
+ assert (len(data[Frequency.DAILY.value]) == 1096)
77
+
78
+ assert (len(data[Frequency.WEEKLY.value]) == 155)
79
+
80
+ assert (len(data[Frequency.MONTHLY.value]) == 36)
81
+
82
+ assert (len(data[Frequency.YEARLY.value]) == 3)
83
+
84
+ # ------------------------------------------------------
85
+ def test_daily_excelfile_sample(self):
86
+
87
+ dataSource = ExcelFileDataSource("tests/resources/Donnees_informatives_PCE_DAILY.xlsx")
88
+
89
+ endDate = date.today()
90
+ startDate = endDate + timedelta(days=-365)
91
+
92
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.DAILY])
93
+
94
+ assert (len(data[Frequency.DAILY.value]) == 363)
95
+
96
+ # ------------------------------------------------------
97
+ def test_weekly_excelfile_sample(self):
98
+
99
+ dataSource = ExcelFileDataSource("tests/resources/Donnees_informatives_PCE_WEEKLY.xlsx")
100
+
101
+ endDate = date.today()
102
+ startDate = endDate + timedelta(days=-365)
103
+
104
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.WEEKLY])
105
+
106
+ assert (len(data[Frequency.WEEKLY.value]) == 53)
107
+
108
+ # ------------------------------------------------------
109
+ def test_monthly_excelfile_sample(self):
110
+
111
+ dataSource = ExcelFileDataSource("tests/resources/Donnees_informatives_PCE_MONTHLY.xlsx")
112
+
113
+ endDate = date.today()
114
+ startDate = endDate + timedelta(days=-365)
115
+
116
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.MONTHLY])
117
+
118
+ assert (len(data[Frequency.MONTHLY.value]) == 13)
119
+
120
+ # ------------------------------------------------------
121
+ def test_yearly_excelfile_sample(self):
122
+
123
+ dataSource = ExcelFileDataSource("tests/resources/Donnees_informatives_PCE_DAILY.xlsx")
124
+
125
+ endDate = date.today()
126
+ startDate = endDate + timedelta(days=-365)
127
+
128
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.YEARLY])
129
+
130
+ assert (len(data[Frequency.YEARLY.value]) == 1)
131
+
132
+ # ------------------------------------------------------
133
+ def test_jsonweb(self):
134
+
135
+ dataSource = JsonWebDataSource(self.__username, self.__password)
136
+
137
+ endDate = date.today()
138
+ startDate = endDate + timedelta(days=-365)
139
+
140
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.DAILY, Frequency.WEEKLY, Frequency.MONTHLY, Frequency.YEARLY])
141
+
142
+ assert (len(data[Frequency.DAILY.value]) > 0)
143
+
144
+ assert (len(data[Frequency.WEEKLY.value]) >= 51 and len(data[Frequency.WEEKLY.value]) <= 54)
145
+
146
+ assert (len(data[Frequency.MONTHLY.value]) >= 11 and len(data[Frequency.MONTHLY.value]) <= 13)
147
+
148
+ assert (len(data[Frequency.YEARLY.value]) >= 1)
149
+
150
+ # ------------------------------------------------------
151
+ def test_excelweb(self):
152
+
153
+ dataSource = ExcelWebDataSource(self.__username, self.__password, self.__tmp_directory)
154
+
155
+ endDate = date.today()
156
+ startDate = endDate + timedelta(days=-365)
157
+
158
+ data = dataSource.load(self.__pceIdentifier, startDate, endDate, [Frequency.DAILY, Frequency.WEEKLY, Frequency.MONTHLY, Frequency.YEARLY])
159
+
160
+ assert (len(data[Frequency.DAILY.value]) > 0)
161
+
162
+ assert (len(data[Frequency.WEEKLY.value]) >= 51 and len(data[Frequency.WEEKLY.value]) <= 54)
163
+
164
+ assert (len(data[Frequency.MONTHLY.value]) >= 12 and len(data[Frequency.MONTHLY.value]) <= 13)
165
+
166
+ assert (len(data[Frequency.YEARLY.value]) >= 1)