Skip to content

Commit 4971237

Browse files
committed
replace mocked tests by endpoint tests
1 parent e3bd000 commit 4971237

File tree

15 files changed

+164
-919
lines changed

15 files changed

+164
-919
lines changed

pysus/Notebooks/.gitkeep

Whitespace-only changes.

pysus/tests/test_ftp.py

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
import unittest
2+
from pathlib import Path
3+
4+
import pandas as pd
5+
6+
from pysus.ftp import File, Directory, Database, CACHE
7+
from pysus.data.local import ParquetSet
8+
from pysus.ftp.databases import (
9+
ciha,
10+
cnes,
11+
pni,
12+
ibge_datasus,
13+
sinan,
14+
sih,
15+
sinasc,
16+
sia,
17+
sim,
18+
)
19+
20+
21+
def _test_file(testcase: unittest.TestCase, file: File):
22+
testcase.assertTrue(isinstance(file, File))
23+
testcase.assertTrue(set(["size", "type", "modify"]) == set(file.info))
24+
testcase.assertTrue(bool(file.basename))
25+
testcase.assertTrue(bool(file.name))
26+
testcase.assertTrue(bool(file.path))
27+
testcase.assertTrue(str(Path(file.path).parent) == file.parent_path)
28+
29+
30+
def _test_database(testcase: unittest.TestCase, database: Database):
31+
testcase.assertTrue(isinstance(database, Database))
32+
testcase.assertTrue(bool(database.content))
33+
testcase.assertTrue(
34+
set(["description", "long_name", "source"]) == set(database.metadata)
35+
)
36+
37+
downloaded_file = (
38+
database.download(database.files[0])
39+
if database.files[0].extension != ".zip"
40+
else database.download(database.files[-1])
41+
)
42+
testcase.assertTrue(isinstance(downloaded_file, ParquetSet))
43+
testcase.assertTrue(Path(downloaded_file.path).exists())
44+
testcase.assertTrue(
45+
isinstance(downloaded_file.to_dataframe(), pd.DataFrame)
46+
)
47+
testcase.assertTrue(not downloaded_file.to_dataframe().empty)
48+
49+
50+
class TestDirectoryAndFile(unittest.TestCase):
51+
def setUp(self):
52+
self.root = Directory("/").load()
53+
54+
def test_root_load(self):
55+
self.assertTrue(self.root.loaded)
56+
self.assertTrue(Directory("/dissemin") in self.root.content)
57+
58+
def test_root_reload(self):
59+
root = self.root.reload()
60+
self.assertTrue(root.content == self.root.content)
61+
62+
def test_root_directory(self):
63+
self.assertTrue(self.root.name == "/")
64+
self.assertTrue(self.root.path == "/")
65+
self.assertTrue(self.root.parent == self.root) # outermost parent
66+
67+
def test_directory_cache(self):
68+
self.assertTrue(CACHE["/"] == self.root)
69+
70+
def test_sinan_file(self):
71+
file = Directory("/dissemin/publicos/SINAN/DADOS/FINAIS").content[0]
72+
_test_file(self, file)
73+
74+
75+
class TestDatabases(unittest.TestCase):
76+
def test_ciha(self):
77+
database = ciha.CIHA().load()
78+
_test_database(self, database)
79+
self.assertTrue(database.name == "CIHA")
80+
self.assertSetEqual(
81+
set(database.describe(database.files[0])),
82+
{'group', 'last_update', 'month', 'name', 'size', 'uf', 'year'}
83+
)
84+
self.assertEqual(len(database.format(database.files[0])), 4)
85+
86+
def test_cnes(self):
87+
database = cnes.CNES().load("DC")
88+
_test_database(self, database)
89+
self.assertTrue(database.name == "CNES")
90+
self.assertSetEqual(
91+
set(database.describe(database.files[0])),
92+
{'group', 'last_update', 'month', 'name', 'size', 'uf', 'year'}
93+
)
94+
self.assertEqual(len(database.format(database.files[0])), 4)
95+
96+
def test_pni(self):
97+
database = pni.PNI().load()
98+
_test_database(self, database)
99+
self.assertTrue(database.name == "PNI")
100+
self.assertSetEqual(
101+
set(database.describe(database.files[0])),
102+
{'group', 'last_update', 'name', 'size', 'uf', 'year'}
103+
)
104+
self.assertEqual(len(database.format(database.files[0])), 3)
105+
106+
def test_ibge_datasus(self):
107+
database = ibge_datasus.IBGEDATASUS().load()
108+
_test_database(self, database)
109+
self.assertTrue(database.name == "IBGE-DataSUS")
110+
self.assertSetEqual(
111+
set(database.describe(database.files[0])),
112+
{'last_update', 'name', 'size', 'year'}
113+
)
114+
self.assertEqual(len(database.format(database.files[0])), 1)
115+
116+
def test_sinan(self):
117+
database = sinan.SINAN().load()
118+
_test_database(self, database)
119+
self.assertTrue(database.name == "SINAN")
120+
self.assertSetEqual(
121+
set(database.describe(database.files[0])),
122+
{'disease', 'last_update', 'name', 'size', 'year'}
123+
)
124+
self.assertEqual(len(database.format(database.files[0])), 2)
125+
126+
def test_sih(self):
127+
database = sih.SIH().load()
128+
_test_database(self, database)
129+
self.assertTrue(database.name == "SIH")
130+
self.assertSetEqual(
131+
set(database.describe(database.files[0])),
132+
{'group', 'last_update', 'month', 'name', 'size', 'uf', 'year'}
133+
)
134+
self.assertEqual(len(database.format(database.files[0])), 4)
135+
136+
def test_sinasc(self):
137+
database = sinasc.SINASC().load()
138+
_test_database(self, database)
139+
self.assertTrue(database.name == "SINASC")
140+
self.assertSetEqual(
141+
set(database.describe(database.files[0])),
142+
{'group', 'last_update', 'name', 'size', 'uf', 'year'}
143+
)
144+
self.assertEqual(len(database.format(database.files[0])), 3)
145+
146+
def test_sia(self):
147+
database = sia.SIA().load()
148+
_test_database(self, database)
149+
self.assertTrue(database.name == "SIA")
150+
self.assertSetEqual(
151+
set(database.describe(database.files[0])),
152+
{'group', 'last_update', 'month', 'name', 'size', 'uf', 'year'}
153+
)
154+
self.assertEqual(len(database.format(database.files[0])), 4)
155+
156+
def test_sim(self):
157+
database = sim.SIM().load()
158+
_test_database(self, database)
159+
self.assertTrue(database.name == "SIM")
160+
self.assertSetEqual(
161+
set(database.describe(database.files[0])),
162+
{'group', 'last_update', 'name', 'size', 'uf', 'year'}
163+
)
164+
self.assertEqual(len(database.format(database.files[0])), 3)

pysus/tests/test_ftp/__init__.py

Whitespace-only changes.

pysus/tests/test_ftp/test_File.py

Lines changed: 0 additions & 61 deletions
This file was deleted.

pysus/tests/test_ftp/test_databases/__init__.py

Whitespace-only changes.

pysus/tests/test_ftp/test_databases/test_CIHA.py

Lines changed: 0 additions & 96 deletions
This file was deleted.

0 commit comments

Comments
 (0)