Skip to content

Commit

Permalink
Run linter
Browse files Browse the repository at this point in the history
  • Loading branch information
turicas committed May 3, 2024
1 parent b130ad5 commit 07d08a0
Show file tree
Hide file tree
Showing 53 changed files with 393 additions and 117 deletions.
6 changes: 5 additions & 1 deletion api/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,11 @@ def test_redirects_from_api_host(self):
]

for url, redirect_url in path_assertions:
response = self.client.get(url, HTTP_HOST=settings.BRASILIO_API_HOST, **auth_header,)
response = self.client.get(
url,
HTTP_HOST=settings.BRASILIO_API_HOST,
**auth_header,
)
self.assertRedirects(response, redirect_url, msg_prefix=url, fetch_redirect_response=False, status_code=301)

assert "/datasets/" == path_assertions[0][0]
Expand Down
6 changes: 5 additions & 1 deletion api/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,9 @@
path("", views.api_root, name="api-root"),
path("datasets/", views.dataset_list, name="dataset-list"),
path("dataset/<slug>/", views.dataset_detail, name="dataset-detail"),
path("dataset/<slug>/<tablename>/data/", enable_ratelimit(views.dataset_data), name="dataset-table-data",),
path(
"dataset/<slug>/<tablename>/data/",
enable_ratelimit(views.dataset_data),
name="dataset-table-data",
),
]
6 changes: 5 additions & 1 deletion api/urls_v0.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,9 @@
path("", views.api_root, name="api-root"),
path("datasets/", views.dataset_list, name="dataset-list"),
path("dataset/<slug>/", views.dataset_detail, name="dataset-detail"),
path("dataset/<slug>/<tablename>/data/", enable_ratelimit(views.dataset_data), name="dataset-table-data",),
path(
"dataset/<slug>/<tablename>/data/",
enable_ratelimit(views.dataset_data),
name="dataset-table-data",
),
]
5 changes: 4 additions & 1 deletion api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ class DatasetViewSet(viewsets.ModelViewSet):
@check_api_version_redirect
def retrieve(self, request, slug):
obj = get_object_or_404(self.get_queryset(), slug=slug)
serializer = DatasetDetailSerializer(obj, context=self.get_serializer_context(),)
serializer = DatasetDetailSerializer(
obj,
context=self.get_serializer_context(),
)
return Response(serializer.data)

@check_api_version_redirect
Expand Down
3 changes: 2 additions & 1 deletion brasilio_auth/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ def view(request):
pseudo_buffer = Echo()
writer = csv.writer(pseudo_buffer, dialect=csv.excel)
response = StreamingHttpResponse(
(writer.writerow(row) for row in rows), content_type="text/csv;charset=UTF-8",
(writer.writerow(row) for row in rows),
content_type="text/csv;charset=UTF-8",
)
response["Content-Disposition"] = 'attachment; filename="newsletter_subscribers.csv"'
response.encoding = "UTF-8"
Expand Down
4 changes: 3 additions & 1 deletion brasilio_auth/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ def is_valid_username(username):


class UserCreationForm(RegistrationFormUniqueEmail):
username = forms.CharField(widget=forms.TextInput(),)
username = forms.CharField(
widget=forms.TextInput(),
)
email = forms.EmailField()
password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
password2 = forms.CharField(
Expand Down
4 changes: 3 additions & 1 deletion brasilio_auth/scripts/migrate_duplicate_emails.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ def migrate_duplicate_emails(filepath=None):
filepath = filepath or "/data/duplicate_email_users.csv"

duplicate_emails = (
User.objects.annotate(email_lower_trim=Lower(Trim("email")),)
User.objects.annotate(
email_lower_trim=Lower(Trim("email")),
)
.values("email_lower_trim")
.annotate(cnt=Count("email_lower_trim"))
.filter(~Q(email_lower_trim=""), cnt__gt=1)
Expand Down
1 change: 1 addition & 0 deletions brasilio_auth/scripts/migrate_wrong_usernames.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
old_username = 'name@'
new_username = 'name'
"""

import csv
import string
from typing import Tuple
Expand Down
2 changes: 1 addition & 1 deletion brasilio_auth/tests/test_forms.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from unittest.mock import Mock, patch

from django_recaptcha.fields import ReCaptchaField
from django.conf import settings
from django.contrib.auth.forms import UserCreationForm as DjangoUserCreationForm
from django.test import TestCase, override_settings
from django_recaptcha.fields import ReCaptchaField
from model_bakery import baker

from brasilio_auth.forms import TokenApiManagementForm, UserCreationForm
Expand Down
6 changes: 5 additions & 1 deletion brasilio_auth/tests/test_login.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ def setUp(self):
self.username = "testuser"
self.email = "[email protected]"
self.password = "supersecret"
self.user = self.create_user(username=self.username, password=self.password, email=self.email,)
self.user = self.create_user(
username=self.username,
password=self.password,
email=self.email,
)

def create_user(self, username, password, email):
user = User.objects.create(username=username, email=email, is_active=True)
Expand Down
10 changes: 7 additions & 3 deletions brasilio_auth/tests/test_scripts.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,11 @@ def test_create_more_possibilities_with_suffixes(self):

class TestReplaceUsernameWithSuggestions(TestCase):
def setUp(self):
self.user_1 = baker.make(User, username="test@", email="[email protected]",)
self.user_1 = baker.make(
User,
username="test@",
email="[email protected]",
)
self.expected_username_1 = "test"

self.user_2 = baker.make(User, username="@test@", email="[email protected]")
Expand Down Expand Up @@ -119,8 +123,8 @@ def test_all_combinations_of_user_1_already_exists(self):

class TestMigrateDuplicateCaseInsentiveEmails(TestCase):
"""
Alguns usuários possuem emails duplicados. Algumas das vezes
variando a duplicação em caixa-baixa e caixa-alta
Alguns usuários possuem emails duplicados. Algumas das vezes
variando a duplicação em caixa-baixa e caixa-alta
"""

def setUp(self):
Expand Down
2 changes: 1 addition & 1 deletion brasilio_auth/tests/test_views.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from unittest.mock import Mock, patch

from django_recaptcha.fields import ReCaptchaField
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import get_user_model
from django.core import mail
from django.template.loader import get_template
from django.test import TestCase, override_settings
from django.urls import reverse
from django_recaptcha.fields import ReCaptchaField
from model_bakery import baker

from api.models import Token
Expand Down
24 changes: 20 additions & 4 deletions brasilio_auth/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,31 @@
path("logout/", logout, name="logout"),
path("troca-senha/", password_reset, name="password_reset"),
path("troca-senha/enviada/", password_reset_done, name="password_reset_done"),
path("troca-senha/<uidb64>/<token>/", password_reset_confirm, name="password_reset_confirm",),
path("troca-senha/atualizada/", password_reset_complete, name="password_reset_complete",),
path(
"troca-senha/<uidb64>/<token>/",
password_reset_confirm,
name="password_reset_confirm",
),
path(
"troca-senha/atualizada/",
password_reset_complete,
name="password_reset_complete",
),
path(
"ativar/sucesso/",
TemplateView.as_view(template_name="brasilio_auth/activation_complete.html"),
name="activation_complete",
),
path("ativar/<str:activation_key>/", views.ActivationView.as_view(), name="activate_user",),
path("entrar/", disable_non_logged_user_cache(views.RegistrationView.as_view()), name="sign_up",),
path(
"ativar/<str:activation_key>/",
views.ActivationView.as_view(),
name="activate_user",
),
path(
"entrar/",
disable_non_logged_user_cache(views.RegistrationView.as_view()),
name="sign_up",
),
path(
"entrar/sucesso/",
TemplateView.as_view(template_name="brasilio_auth/registration_complete.html"),
Expand Down
18 changes: 9 additions & 9 deletions core/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,9 @@ def data_table_management_view(self, request, data_table_id, op_type):

current = data_table.table.data_table
context["action_title"] = "Ativar"
context[
"help_text"
] = f"Ao desempenhar essa ação, <a href='{current.admin_url}'>{current}</a> será inativado."
context["help_text"] = (
f"Ao desempenhar essa ação, <a href='{current.admin_url}'>{current}</a> será inativado."
)
if request.GET.get("confirm", None):
data_table.activate()
self.message_user(request, f"{data_table} is now active")
Expand All @@ -144,13 +144,13 @@ def data_table_management_view(self, request, data_table_id, op_type):

most_recent = data_table.table.data_tables.exclude(id=data_table.id).inactive().most_recent()
if most_recent:
context[
"help_text"
] = f"Ao desempenhar essa ação, <a href='{most_recent.admin_url}'>{most_recent}</a> será ativado."
context["help_text"] = (
f"Ao desempenhar essa ação, <a href='{most_recent.admin_url}'>{most_recent}</a> será ativado."
)
else:
context[
"help_text"
] = f"<b>CUIDADO!!!</b> A tabela {data_table.table} não possui nenhum outro DataTable associado a ela. Desativar esse DataTable pode gerar efeitos indesejados ao sistema."
context["help_text"] = (
f"<b>CUIDADO!!!</b> A tabela {data_table.table} não possui nenhum outro DataTable associado a ela. Desativar esse DataTable pode gerar efeitos indesejados ao sistema."
)

context["action_title"] = "Desativar"
if request.GET.get("confirm", None):
Expand Down
1 change: 0 additions & 1 deletion core/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,6 @@ class UpdateTableFileListCommand:

def __init__(self, dataset, **options):
self.dataset = dataset
minio_endpoint = urlparse(settings.AWS_S3_ENDPOINT_URL).netloc
self.bucket = settings.AWS_S3_DATASETS_BUCKET_NAME
self._collect_date = options["collect_date"]

Expand Down
11 changes: 10 additions & 1 deletion core/dynamic_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,16 @@ def create_model_class(name, module, fields, mixins=None, meta=None, managers=No
managers = {}

Options = type("Meta", (object,), meta)
Model = type(name, parent_classes, {"__module__": module, "Meta": Options, **managers, **fields,},)
Model = type(
name,
parent_classes,
{
"__module__": module,
"Meta": Options,
**managers,
**fields,
},
)

# TODO: may create a model proxy (injecting mixins) and then return the
# proxy
Expand Down
7 changes: 5 additions & 2 deletions core/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@ def _get_obj(field, identifier, person_type):
return Empresa.objects.get_headquarter_or_branch(numbers_only(identifier))
except ValueError:
raise ValidationError(
_("Invalid value: %(value)s"), params={"value": identifier},
_("Invalid value: %(value)s"),
params={"value": identifier},
)
except ObjectDoesNotExist:
return None
Expand All @@ -48,7 +49,9 @@ class ContactForm(forms.Form):
name = forms.CharField(required=True, label="Nome")
email = forms.EmailField(required=True, label="E-mail")
message = forms.CharField(
required=True, label="Mensagem", widget=forms.Textarea(attrs={"class": "materialize-textarea"}),
required=True,
label="Mensagem",
widget=forms.Textarea(attrs={"class": "materialize-textarea"}),
)
captcha = ReCaptchaField()

Expand Down
5 changes: 4 additions & 1 deletion core/management/commands/import_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ def add_arguments(self, parser):
parser.add_argument("--no-fill-choices", required=False, action="store_true")
parser.add_argument("--delete-old-table", required=False, action="store_true")
parser.add_argument(
"--collect-date", required=False, action="store", help="collect date in format YYYY-MM-DD",
"--collect-date",
required=False,
action="store",
help="collect date in format YYYY-MM-DD",
)

def clean_collect_date(self, collect_date):
Expand Down
5 changes: 4 additions & 1 deletion core/management/commands/update_fields_from_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@ def handle(self, *args, **kwargs):
defaults={"default": False, "ordering": ["id"]},
)
existing_field = Field.objects.filter(
dataset=row["dataset"], version=row["version"], table=row["table"], name=row["name"],
dataset=row["dataset"],
version=row["version"],
table=row["table"],
name=row["name"],
)
if not existing_field.exists():
action = "created"
Expand Down
10 changes: 8 additions & 2 deletions core/management/commands/update_table_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ def add_arguments(self, parser):
"--update-list", required=False, action="store_true", help="update dataset _meta/list.html (default False)"
)
parser.add_argument(
"--collect-date", required=False, action="store", help="collect date in format YYYY-MM-DD",
"--collect-date",
required=False,
action="store",
help="collect date in format YYYY-MM-DD",
)

def handle(self, *args, **kwargs):
Expand All @@ -28,7 +31,10 @@ def handle(self, *args, **kwargs):
update_list = kwargs["update_list"]

UpdateTableFileCommand.execute(
dataset_slug, tablename, file_url, delete_source=kwargs["delete_source"],
dataset_slug,
tablename,
file_url,
delete_source=kwargs["delete_source"],
)
if update_list:
call_command("update_table_file_list", dataset_slug, collect_date=kwargs["collect_date"])
5 changes: 4 additions & 1 deletion core/management/commands/update_table_file_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument("dataset_slug")
parser.add_argument(
"--collect-date", required=False, action="store", help="collect date in format YYYY-MM-DD",
"--collect-date",
required=False,
action="store",
help="collect date in format YYYY-MM-DD",
)

def clean_collect_date(self, collect_date):
Expand Down
17 changes: 14 additions & 3 deletions core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ def count(self):
try:
with connection.cursor() as cursor:
cursor.execute(
"SELECT reltuples FROM pg_class WHERE relname = %s", [query.model._meta.db_table],
"SELECT reltuples FROM pg_class WHERE relname = %s",
[query.model._meta.db_table],
)
self._count = int(cursor.fetchone()[0])
except Exception:
Expand Down Expand Up @@ -414,7 +415,12 @@ def get_model(self, cache=True, data_table=None):
indexes = []

if ordering and ordering != ["id"]:
indexes.append(django_indexes.Index(name=make_index_name(db_table, "order", ordering), fields=ordering,))
indexes.append(
django_indexes.Index(
name=make_index_name(db_table, "order", ordering),
fields=ordering,
)
)
if filtering:
for field_name in filtering:
if ordering and field_name == ordering[0]:
Expand All @@ -435,7 +441,12 @@ def get_model(self, cache=True, data_table=None):
meta = {"ordering": ordering, "indexes": indexes, "db_table": db_table}

Model = dynamic_models.create_model_class(
name=self.model_name, module="core.models", fields=fields, mixins=mixins, meta=meta, managers=managers,
name=self.model_name,
module="core.models",
fields=fields,
mixins=mixins,
meta=meta,
managers=managers,
)
Model.extra = {
"filtering": filtering,
Expand Down
7 changes: 6 additions & 1 deletion core/tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@ class TableModelTests(TestCase):
def test_schema_as_ordered_dict(self):
table = baker.make(Table)
fields = baker.make(
"core.Field", table=table, name=seq("field_"), dataset=table.dataset, order=seq(1), _quantity=10,
"core.Field",
table=table,
name=seq("field_"),
dataset=table.dataset,
order=seq(1),
_quantity=10,
)

assert isinstance(table.schema, OrderedDict)
Expand Down
7 changes: 6 additions & 1 deletion core/tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,12 @@ def setUpTestData(cls):
Dataset.objects.filter(slug=cls.DATASET_SLUG).delete()
cls.dataset = baker.make(Dataset, slug=cls.DATASET_SLUG, show=True)
cls.version = baker.make(Version, dataset=cls.dataset)
cls.table = baker.make("core.Table", dataset=cls.dataset, name=cls.TABLE_NAME, version=cls.version,)
cls.table = baker.make(
"core.Table",
dataset=cls.dataset,
name=cls.TABLE_NAME,
version=cls.version,
)
cls.data_table = DataTable.new_data_table(cls.table)
cls.data_table.activate()

Expand Down
Loading

0 comments on commit 07d08a0

Please sign in to comment.