diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 000000000..26d33521a
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 000000000..3dce9c67a
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 000000000..105ce2da2
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libpythonpro.iml b/.idea/libpythonpro.iml
new file mode 100644
index 000000000..28b42bd89
--- /dev/null
+++ b/.idea/libpythonpro.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 000000000..14145163d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 000000000..3478ad2cf
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 000000000..94a25f7f4
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 6694375b7..7bc9da60c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,8 +2,7 @@ language: python
python:
- 3.7
install:
- - pip install -q pipenv codecov
- - pipenv sync --dev
+ - pip install -r requirements-dev.txt codecov
script:
- flake8
- pytest libpythonpro --cov=libpythonpro
diff --git a/LICENSE b/LICENSE
index dbbe35581..855362a1d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -659,3 +659,6 @@ specific requirements.
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
.
+
+
+nesse curo ensina fazer o PullRequest de projetos abertos
\ No newline at end of file
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/libpythonpro/.flake8 b/libpythonpro/.flake8
new file mode 100644
index 000000000..796971547
--- /dev/null
+++ b/libpythonpro/.flake8
@@ -0,0 +1,3 @@
+[flake8]
+max-line-length = 120
+exclude=.venv
\ No newline at end of file
diff --git a/libpythonpro/.pyup.yml b/libpythonpro/.pyup.yml
new file mode 100644
index 000000000..551ae40dd
--- /dev/null
+++ b/libpythonpro/.pyup.yml
@@ -0,0 +1,3 @@
+requirements:
+ - Pipfile
+ - Pipfile.lock
\ No newline at end of file
diff --git a/libpythonpro/.travis.yml b/libpythonpro/.travis.yml
new file mode 100644
index 000000000..6c060517f
--- /dev/null
+++ b/libpythonpro/.travis.yml
@@ -0,0 +1,11 @@
+language: python
+python:
+ - 3.7
+install:
+ - pip install -q pipenv codecov
+ - pipenv sync --dev
+script:
+ - flake8
+ - -pytest libpythonpro --cov=liboythonpro
+after_sucess:
+ - codecov
\ No newline at end of file
diff --git a/libpythonpro/__init__.py b/libpythonpro/__init__.py
index b650ceb08..a4e2017f0 100644
--- a/libpythonpro/__init__.py
+++ b/libpythonpro/__init__.py
@@ -1 +1 @@
-__version__ = '0.2'
+__version__ = "0.1"
diff --git a/libpythonpro/github_api.py b/libpythonpro/github_api.py
index 8b0fbafb9..b1685f749 100644
--- a/libpythonpro/github_api.py
+++ b/libpythonpro/github_api.py
@@ -3,8 +3,7 @@
def buscar_avatar(usuario):
"""
- Busca o avatar de um usuário no Github
-
+ Busca o avatar de um usuário no githupyb
:param usuario: str com o nome de usuário no github
:return: str com o link do avatar
"""
diff --git a/libpythonpro/spam/enviador_de_email.py b/libpythonpro/spam/enviador_de_email.py
index fa0952223..b5101fdfa 100644
--- a/libpythonpro/spam/enviador_de_email.py
+++ b/libpythonpro/spam/enviador_de_email.py
@@ -1,9 +1,9 @@
class Enviador:
def enviar(self, remetente, destinatario, assunto, corpo):
if '@' not in remetente:
- raise EmailInvalido(f'Email de remetente inválido: {remetente}')
+ raise EmailInvalido(f'Email de remetente invalido: {remetente} ')
return remetente
class EmailInvalido(Exception):
- pass
+ pass
\ No newline at end of file
diff --git a/libpythonpro/spam/main.py b/libpythonpro/spam/main.py
index f81821ae4..6725b161f 100644
--- a/libpythonpro/spam/main.py
+++ b/libpythonpro/spam/main.py
@@ -10,4 +10,4 @@ def enviar_emails(self, remetente, assunto, corpo):
usuario.email,
assunto,
corpo
- )
+ )
\ No newline at end of file
diff --git a/libpythonpro/spam/modelos.py b/libpythonpro/spam/modelos.py
index 093b35a2a..1b9a7ec0c 100644
--- a/libpythonpro/spam/modelos.py
+++ b/libpythonpro/spam/modelos.py
@@ -1,5 +1,5 @@
-class Usuario:
+class Usuario(object):
def __init__(self, nome, email):
self.email = email
self.nome = nome
- self.id = None
+ self.id = None
\ No newline at end of file
diff --git a/libpythonpro/spam/db.py b/libpythonpro/spam/tb.py
similarity index 83%
rename from libpythonpro/spam/db.py
rename to libpythonpro/spam/tb.py
index ce90ca60b..fd1a4f6b2 100644
--- a/libpythonpro/spam/db.py
+++ b/libpythonpro/spam/tb.py
@@ -5,7 +5,7 @@ class Sessao:
contador = 0
usuarios = []
- def salvar(self, usuario):
+ def salvar (self, usuario):
Sessao.contador += 1
usuario.id = Sessao.contador
self.usuarios.append(usuario)
@@ -21,11 +21,9 @@ def fechar(self):
class Conexao:
- def __init__(self):
- sleep(1)
def gerar_sessao(self):
return Sessao()
def fechar(self):
- pass
+ pass
\ No newline at end of file
diff --git a/libpythonpro/tests/test_exemplo.py b/libpythonpro/tests/test_exemplo.py
index 78cd50236..775ac58e1 100644
--- a/libpythonpro/tests/test_exemplo.py
+++ b/libpythonpro/tests/test_exemplo.py
@@ -1,2 +1,2 @@
def test_int():
- assert 1 == 1
+ assert 1 == 1
\ No newline at end of file
diff --git a/libpythonpro/tests/test_spam/conftest.py b/libpythonpro/tests/test_spam/conftest.py
index a16f3970a..5f7f387ff 100644
--- a/libpythonpro/tests/test_spam/conftest.py
+++ b/libpythonpro/tests/test_spam/conftest.py
@@ -1,14 +1,14 @@
import pytest
-from libpythonpro.spam.db import Conexao
+from ...spam.tb import Conexao
@pytest.fixture(scope='session')
def conexao():
- # Setup
+ #Setup
conexao_obj = Conexao()
yield conexao_obj
- # Tear Down
+ #Tear Down
conexao_obj.fechar()
@@ -17,4 +17,4 @@ def sessao(conexao):
sessao_obj = conexao.gerar_sessao()
yield sessao_obj
sessao_obj.roll_back()
- sessao_obj.fechar()
+ sessao_obj.fechar()
\ No newline at end of file
diff --git a/libpythonpro/tests/test_spam/test_enviador_de_email.py b/libpythonpro/tests/test_spam/test_enviador_de_email.py
index c72a0bbe9..3d0d416b7 100644
--- a/libpythonpro/tests/test_spam/test_enviador_de_email.py
+++ b/libpythonpro/tests/test_spam/test_enviador_de_email.py
@@ -1,31 +1,31 @@
import pytest
-from libpythonpro.spam.enviador_de_email import EmailInvalido, Enviador
+from ...spam.enviador_de_email import Enviador, EmailInvalido
def test_criar_enviador_de_email():
enviador = Enviador()
assert enviador is not None
-
@pytest.mark.parametrize(
'remetente',
- ['foo@bar.com.br', 'renzo@python.pro.br']
+ ['99@rara.com.br', 'doougals.@gmail.com']
)
def test_remetente(remetente):
enviador = Enviador()
- resultado = enviador.enviar(
+ resultado=enviador.enviar(
remetente,
'luciano@python.pro.br',
'Cursos Python Pro',
- 'Primeira turma Guido Von Rossum aberta.'
+ 'Prieiira turma Guido Von Rossum aberta.'
)
+
assert remetente in resultado
@pytest.mark.parametrize(
'remetente',
- ['', 'renzo']
+ ['', 'doougals.ail.com']
)
def test_remetente_invalido(remetente):
enviador = Enviador()
@@ -34,5 +34,5 @@ def test_remetente_invalido(remetente):
remetente,
'luciano@python.pro.br',
'Cursos Python Pro',
- 'Primeira turma Guido Von Rossum aberta.'
- )
+ 'Prieiira turma Guido Von Rossum aberta.'
+ )
\ No newline at end of file
diff --git a/libpythonpro/tests/test_spam/test_envio_para_base_de_usuarios.py b/libpythonpro/tests/test_spam/test_envio_para_base_de_usuarios.py
index d2db43893..34d592412 100644
--- a/libpythonpro/tests/test_spam/test_envio_para_base_de_usuarios.py
+++ b/libpythonpro/tests/test_spam/test_envio_para_base_de_usuarios.py
@@ -2,48 +2,48 @@
import pytest
-from libpythonpro.spam.main import EnviadorDeSpam
-from libpythonpro.spam.modelos import Usuario
+from ...spam.enviador_de_email import Enviador
+from ...spam.main import EnviadorDeSpam
+from ...spam.modelos import Usuario
@pytest.mark.parametrize(
'usuarios',
[
[
- Usuario(nome='Renzo', email='renzo@python.pro.br'),
- Usuario(nome='Luciano', email='renzo@python.pro.br')
+ Usuario(nome='Douglas', email="doouglas@gmail.com.br"),
+ Usuario(nome='Dodo', email="doouglas@gmail.com.br")
],
[
- Usuario(nome='Renzo', email='renzo@python.pro.br')
+ Usuario(nome='Douglas', email="doouglas@gmail.com.br"),
]
]
)
-def test_qde_de_spam(sessao, usuarios):
+def test_envio_de_spam(sessao, usuarios):
for usuario in usuarios:
sessao.salvar(usuario)
- enviador = Mock()
+ enviador = Mock()
enviador_de_spam = EnviadorDeSpam(sessao, enviador)
enviador_de_spam.enviar_emails(
- 'renzo@python.pro.br',
+ 'dodo@gmail.com',
'Curso Python Pro',
'Confira os módulos fantásticos'
)
assert len(usuarios) == enviador.enviar.call_count
-
def test_parametros_de_spam(sessao):
- usuario = Usuario(nome='Renzo', email='renzo@python.pro.br')
+ usuario = Usuario(nome='Douglas', email="doouglas@gmail.com.br")
sessao.salvar(usuario)
enviador = Mock()
enviador_de_spam = EnviadorDeSpam(sessao, enviador)
enviador_de_spam.enviar_emails(
- 'luciano@python.pro.br',
+ 'luciano@gmail.com',
'Curso Python Pro',
'Confira os módulos fantásticos'
)
enviador.enviar.assert_called_once_with(
- 'luciano@python.pro.br',
- 'renzo@python.pro.br',
+ 'luciano@gmail.com',
+ "doouglas@gmail.com.br",
'Curso Python Pro',
'Confira os módulos fantásticos'
- )
+ )
\ No newline at end of file
diff --git a/libpythonpro/tests/test_spam/test_github_api.py b/libpythonpro/tests/test_spam/test_github_api.py
index 21ce9c5d0..7c3a2a0f1 100644
--- a/libpythonpro/tests/test_spam/test_github_api.py
+++ b/libpythonpro/tests/test_spam/test_github_api.py
@@ -1,19 +1,20 @@
-from unittest.mock import Mock
+import unittest.mock
import pytest
+from pytest_mock import mocker
-from libpythonpro import github_api
+from ... import github_api
@pytest.fixture
def avatar_url(mocker):
- resp_mock = Mock()
+ resp_mock = unittest.mock.Mock()
url = 'https://avatars3.githubusercontent.com/u/402714?v=4'
resp_mock.json.return_value = {
'login': 'renzo', 'id': 402714,
'avatar_url': url,
}
- get_mock = mocker.patch('libpythonpro.github_api.requests.get')
+ get_mock = mocker.patch('libpythonpro.libpythonpro.github_api.requests.get')
get_mock.return_value = resp_mock
return url
@@ -24,5 +25,5 @@ def test_buscar_avatar(avatar_url):
def test_buscar_avatar_integracao():
- url = github_api.buscar_avatar('renzon')
- assert 'https://avatars3.githubusercontent.com/u/3457115?v=4' == url
+ url = github_api.buscar_avatar('renzo')
+ assert 'https://avatars3.githubusercontent.com/u/402714?v=4' == url
diff --git a/libpythonpro/tests/test_spam/test_usuarios.py b/libpythonpro/tests/test_spam/test_usuarios.py
index 09b523445..b624329de 100644
--- a/libpythonpro/tests/test_spam/test_usuarios.py
+++ b/libpythonpro/tests/test_spam/test_usuarios.py
@@ -1,16 +1,16 @@
-from libpythonpro.spam.modelos import Usuario
+from ...spam.modelos import Usuario
def test_salvar_usuario(sessao):
- usuario = Usuario(nome='Renzo', email='renzo@python.pro.br')
+ usuario = Usuario(nome='Douglas', email="doouglas@gmail.com.br")
sessao.salvar(usuario)
assert isinstance(usuario.id, int)
-def test_listar_usuarios(sessao):
+def test_listar_usuario(sessao):
usuarios = [
- Usuario(nome='Renzo', email='renzo@python.pro.br'),
- Usuario(nome='Luciano', email='renzo@python.pro.br')
+ Usuario(nome='Douglas', email="doouglas@gmail.com.br"),
+ Usuario(nome='Dodo', email="doouglas@gmail.com.br")
]
for usuario in usuarios:
sessao.salvar(usuario)