Skip to content

Commit 66c2dcc

Browse files
authored
Merge pull request #44 from vicenteneto/dev
Dando suporte ao retorno de times no formato JSON
2 parents cc07fb2 + b12c532 commit 66c2dcc

8 files changed

Lines changed: 58 additions & 6 deletions

File tree

CHANGES

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@ Changelog
33

44
Aqui você pode ver a lista completa de modificações entre cada versão.
55

6+
Versão 0.6.18
7+
-------------
8+
9+
Lançada em 18 de junho de 2017
10+
11+
- Corrigindo bug no retorno de textos no formato unicode
12+
- Dando suporte à retornar os dados de um time no formato json
13+
14+
615
Versão 0.5.30
716
-------------
817

cartolafc/api.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def __init__(self, email=None, password=None, attempts=1):
5858
email (str): O e-mail da sua conta no CartolaFC. Requerido se o password for informado.
5959
password (str): A senha da sua conta no CartolaFC. Requerido se o email for informado.
6060
attempts (int): Quantidade de tentativas que serão efetuadas se os servidores estiverem sobrecarregados.
61-
61+
6262
Raises:
6363
cartolafc.CartolaFCError: Se as credenciais forem inválidas ou se apenas um dos
6464
dois argumentos (email e password) for informado.
@@ -214,14 +214,15 @@ def pos_rodada_destaques(self):
214214

215215
raise CartolaFCError('Os destaques de pós-rodada só ficam disponíveis com o mercado aberto.')
216216

217-
def time(self, id=None, nome=None, slug=None):
217+
def time(self, id=None, nome=None, slug=None, as_json=False):
218218
""" Obtém um time específico, baseando-se no nome ou no slug utilizado.
219219
Ao menos um dos dois devem ser informado.
220220
221221
Args:
222222
id (int): Id to time que se deseja obter. *Este argumento sempre será utilizado primeiro*
223223
nome (str): Nome do time que se deseja obter. Requerido se o slug não for informado.
224224
slug (str): Slug do time que se deseja obter. *Este argumento tem prioridade sobre o nome*
225+
as_json (bool): Se desejar obter o retorno no formato json.
225226
226227
Returns:
227228
Uma instância de cartolafc.Time se o time foi encontrado.
@@ -236,6 +237,10 @@ def time(self, id=None, nome=None, slug=None):
236237
value = id if id else (slug if slug else convert_team_name_to_slug(nome))
237238
url = '{api_url}/time/{param}/{value}'.format(api_url=self._api_url, param=param, value=value)
238239
data = self._request(url)
240+
241+
if bool(as_json):
242+
return data
243+
239244
clubes = {clube['id']: Clube.from_dict(clube) for clube in data['clubes'].values()}
240245
return Time.from_dict(data, clubes=clubes)
241246

docs/source/conf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,9 @@
5757
# built documents.
5858
#
5959
# The short X.Y version.
60-
version = u'0.5.30'
60+
version = u'0.6.18'
6161
# The full version, including alpha/beta/rc tags.
62-
release = u'0.5.30'
62+
release = u'0.6.18'
6363

6464
# The language for content autogenerated by Sphinx. Refer to documentation
6565
# for a list of supported languages.

examples.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import cartolafc
2+
3+
api = cartolafc.Api(email='sneto.vicente@gmail.com', password='6esncj4m', attempts=5)
4+
5+
print api.amigos()
6+
print api.clubes()
7+
print api.liga(nome='Virtus Premier League')
8+
print api.liga(nome='Nacional', page=2)
9+
print api.liga(nome='Nacional', page=3, order_by=cartolafc.RODADA)
10+
print api.liga(slug='virtus-premier-league')
11+
print api.ligas(query='Virtus')
12+
print api.ligas_patrocinadores()
13+
print api.mercado()
14+
print api.mercado_atletas()
15+
# print api.parciais()
16+
print api.pontuacao_atleta(81682)
17+
print api.pos_rodada_destaques()
18+
print api.time(id=471815)
19+
print api.time(nome='Falydos FC')
20+
print api.time(slug='falydos-fc')
21+
print api.time_logado()
22+
# print api.time_parcial(id=471815)
23+
# print api.time_parcial(nome='Falydos FC')
24+
# print api.time_parcial(slug='falydos-fc')
25+
print api.times(query='Faly')

examples/examples.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,11 @@
1616
print api.pontuacao_atleta(81682)
1717
print api.pos_rodada_destaques()
1818
print api.time(id=471815)
19+
print api.time(id=471815, as_json=True)
1920
print api.time(nome='Falydos FC')
21+
print api.time(nome='Falydos FC', as_json=True)
2022
print api.time(slug='falydos-fc')
23+
print api.time(slug='falydos-fc', as_json=True)
2124
print api.time_logado()
2225
print api.time_parcial(id=471815)
2326
print api.time_parcial(nome='Falydos FC')

examples/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Python-CartolaFC==0.5.30
1+
Python-CartolaFC==0.6.18

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"""
1515
from setuptools import setup
1616

17-
version = '0.5.30'
17+
version = '0.6.18'
1818
packages = ['cartolafc']
1919
install_requires = ['requests']
2020
python_cartolafc_pkg_data = []

tests/test_api.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,16 @@ def test_time_com_id_com_nome_e_com_slug(self):
477477
# Assert
478478
self.assertIsInstance(time, Time)
479479

480+
def test_time_com_json(self):
481+
# Arrange and Act
482+
with requests_mock.mock() as m:
483+
url = '{api_url}/time/id/{id}'.format(api_url=self.api_url, id=471815)
484+
m.get(url, text=self.TIME)
485+
time = self.api.time(id=471815, as_json=True)
486+
487+
# Assert
488+
self.assertIsInstance(time, dict)
489+
480490
def test_time_parcial_mercado_aberto(self):
481491
# Arrange
482492
with requests_mock.mock() as m:

0 commit comments

Comments
 (0)