Skip to content

Commit c83bf3a

Browse files
authored
Fix bug when time series search returned more than one result pages
* bump version on setup.py * add badges to readme * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Updates README.rst * Fix bug when time series search returned more than one result pages * Fix bug when time series search returned more than one result pages * Fix bug when time series search returned more than one result pages * Fix bug when time series search returned more than one result pages * Fix bug when time series search returned more than one result pages * Fix bug when time series search returned more than one result pages
1 parent 5d9c71e commit c83bf3a

5 files changed

Lines changed: 20 additions & 5 deletions

File tree

pytest.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ markers =
88
metadata
99
pep8
1010
mypy
11+
search
1112
ts

setup.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
from setuptools import setup, find_packages
22

3-
__version__ = '2.0'
3+
__version__ = '2.0.1'
44

55
with open('README.rst', 'r', encoding='utf-8') as f:
66
readme = f.read()
77

88

99
requirements = [
10-
'lxml>=4.3.4',
10+
'beautifulsoup4>=4.7.1',
11+
'html5lib>=1.0.1',
1112
'pandas>=0.24.2',
1213
'retrying>=1.3.3',
1314
'requests>=2.22.0',

sgs/__version__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "2.0"
1+
__version__ = "2.0.1"

sgs/search.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def parse_search_response(response, language: str) -> Optional[list]:
7777
LAST = cols["last"]
7878

7979
try:
80-
df = pd.read_html(HTML, attrs={"id": "tabelaSeries"}, flavor="lxml")[0]
80+
df = pd.read_html(HTML, attrs={"id": "tabelaSeries"}, flavor="html5lib", skiprows=1)[0]
8181
df[START] = df[START].map(lambda x: to_datetime(x, language))
8282
df[LAST] = df[LAST].map(lambda x: to_datetime(x, language))
8383
col_names = {

tests/test_search.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,25 @@
44
from sgs.search import *
55
from sgs.common import to_datetime
66

7-
7+
@pytest.mark.search
88
@pytest.mark.parametrize("language", ["en", "pt"])
99
def test_init_search_session(language):
1010
session = init_search_session(language)
1111
assert isinstance(session, requests.Session)
1212

1313

14+
@pytest.mark.search
1415
def test_search_by_code_english():
1516
code = 4
1617
results = search_ts(code, Language.en.value)
18+
print(results)
1719
metadata = results[0]
1820
assert metadata['name'] == "BM&F Gold - gramme"
1921
assert metadata['first_value'] == to_datetime("29/12/1989", "en")
2022
assert metadata['frequency'] == "D"
2123

2224

25+
@pytest.mark.search
2326
def test_search_by_code_portuguese():
2427
code = 4
2528
results = search_ts(code, Language.pt.value)
@@ -29,6 +32,7 @@ def test_search_by_code_portuguese():
2932
assert metadata['frequency'] == "D"
3033

3134

35+
@pytest.mark.search
3236
@pytest.mark.parametrize(
3337
"query,language,expected",
3438
[
@@ -74,6 +78,7 @@ def test_search_by_code(query, language, expected):
7478
assert results["first_value"] == first_value
7579

7680

81+
@pytest.mark.search
7782
def test_search_by_text():
7883
results = search_ts("Ouro BM$F - grama", "pt")
7984
assert isinstance(results, list)
@@ -84,6 +89,14 @@ def test_search_by_text():
8489
assert results is None
8590

8691

92+
@pytest.mark.search
93+
def test_search_by_text_query_returns_multiple_result_pages():
94+
results = search_ts("produto", "pt")
95+
assert isinstance(results, list)
96+
assert len(results) == 50
97+
98+
99+
@pytest.mark.search
87100
def test_search_by_text_multiple_results():
88101
results = search_ts("dolar", "pt")
89102
assert isinstance(results, list)

0 commit comments

Comments
 (0)