Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reformat with Black #13

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
10 changes: 8 additions & 2 deletions analog/define.py
Expand Up @@ -68,8 +68,14 @@ class Meta:
log_entry_class = type(str(log_model_name), (base_class,), class_dict)

def add_log_entry(
self, message, identifier=None, kind="other",
user=None, extra=None, save=True, **kwargs
self,
message,
identifier=None,
kind="other",
user=None,
extra=None,
save=True,
**kwargs
):
return log_entry_class.add_log_entry(
target=self,
Expand Down
22 changes: 14 additions & 8 deletions analog/models.py
Expand Up @@ -33,7 +33,8 @@ class BaseLogEntry(models.Model):
created_on = models.DateTimeField(auto_now_add=True, editable=False)
user = models.ForeignKey(
getattr(settings, "AUTH_USER_MODEL", "auth.User"),
null=True, on_delete=models.PROTECT
null=True,
on_delete=models.PROTECT,
)
message = models.CharField(max_length=256)
identifier = models.CharField(max_length=64, blank=True)
Expand All @@ -59,8 +60,13 @@ def save(self, *args, **kwargs):
@classmethod
def add_log_entry(
cls,
target, message, identifier=None, kind="other",
user=None, extra=None, save=True,
target,
message,
identifier=None,
kind="other",
user=None,
extra=None,
save=True,
**kwargs
):
"""
Expand Down Expand Up @@ -117,17 +123,17 @@ def add_log_entry(
**kwargs
)

has_extra_field = ('extra' in cls._meta._forward_fields_map)
has_extra_field = "extra" in cls._meta._forward_fields_map
if extra is not None:
if not has_extra_field:
raise NoExtraField(
'The %r class has no `extra` field,'
'but non-None extra was passed!' % cls
"The %r class has no `extra` field,"
"but non-None extra was passed!" % cls
)
kwargs['extra'] = extra
kwargs["extra"] = extra

if target is None:
kwargs.pop('target')
kwargs.pop("target")
log_entry = cls(**kwargs)
log_entry.clean()
if save:
Expand Down
4 changes: 2 additions & 2 deletions analog/settings.py
Expand Up @@ -9,7 +9,7 @@
"note": 4,
"email": 5,
"warning": 6,
"error": 7
"error": 7,
}

_DEFAULT_KIND_LABELS = {
Expand All @@ -20,7 +20,7 @@
"note": _("note"),
"email": _("email"),
"warning": _("warning"),
"error": _("error")
"error": _("error"),
}


Expand Down
2 changes: 1 addition & 1 deletion analog/util.py
Expand Up @@ -18,7 +18,7 @@ def __getattr__(self, kind):
:type kind: str
:return: int
"""
if kind.startswith('_'):
if kind.startswith("_"):
return self.__getattribute__(kind)
kind = str(kind).lower()
if kind not in KINDS:
Expand Down
1 change: 1 addition & 0 deletions analog_tests/__main__.py
Expand Up @@ -5,4 +5,5 @@
sys.path.insert(0, os.path.realpath(os.path.dirname(__file__) + "/.."))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "analog_tests.settings")
from django.core.management import execute_from_command_line

execute_from_command_line(sys.argv)
6 changes: 2 additions & 4 deletions analog_tests/models.py
Expand Up @@ -26,8 +26,7 @@ class SecondLoggedModel(models.Model):
pass


SecondLoggedModelLogEntry = define_log_model(
SecondLoggedModel, allow_null_target=True)
SecondLoggedModelLogEntry = define_log_model(SecondLoggedModel, allow_null_target=True)


class ExtraLogEntry(BaseLogEntry):
Expand All @@ -38,5 +37,4 @@ class ThirdLoggedModel(models.Model):
pass


ThirdLoggedModelLogEntry = define_log_model(
ThirdLoggedModel, base_class=ExtraLogEntry)
ThirdLoggedModelLogEntry = define_log_model(ThirdLoggedModel, base_class=ExtraLogEntry)
15 changes: 3 additions & 12 deletions analog_tests/settings.py
Expand Up @@ -4,17 +4,8 @@
"django.contrib.contenttypes",
"analog_tests",
)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:'
}
}
DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"}}

ANALOG_KINDS = {
"custom_kind": 3010
}
ANALOG_KINDS = {"custom_kind": 3010}

ANALOG_KIND_LABELS = {
"custom_kind": "very custom"
}
ANALOG_KIND_LABELS = {"custom_kind": "very custom"}
46 changes: 24 additions & 22 deletions analog_tests/test_analog.py
Expand Up @@ -4,8 +4,12 @@
from analog import BaseLogEntry, LogEntryKind, define_log_model
from analog.exceptions import NoExtraField, UnknownLogKind
from analog_tests.models import (
FreeLogEntry, LoggedModel, LoggedModelLogEntry, SecondLoggedModel,
ThirdLoggedModel)
FreeLogEntry,
LoggedModel,
LoggedModelLogEntry,
SecondLoggedModel,
ThirdLoggedModel,
)


class RandomModel(models.Model):
Expand All @@ -23,6 +27,7 @@ def create_target_object(kind):
if kind == "target":
return LoggedModel.objects.create()
else:

class FakeModel:
pk = None

Expand Down Expand Up @@ -52,13 +57,16 @@ def test_model_sanity():


@pytest.mark.django_db
@pytest.mark.parametrize("target_type,arg_type", [
("free", "kwargs"),
("target", "args"),
("target", "kwargs"),
# Note: ("free", "args") is ommitted here, because free log entries
# do not support kwargless api
])
@pytest.mark.parametrize(
"target_type,arg_type",
[
("free", "kwargs"),
("target", "args"),
("target", "kwargs"),
# Note: ("free", "args") is ommitted here, because free log entries
# do not support kwargless api
],
)
def test_add_log_entry(target_type, arg_type):
target_object = create_target_object(target_type)
if target_object.pk:
Expand Down Expand Up @@ -88,9 +96,7 @@ def test_log_entry_kind(target_object):

@pytest.mark.django_db
def test_log_mutation(target_object):
target_object.add_log_entry(
message="benign action",
kind=LogEntryKind.EDIT)
target_object.add_log_entry(message="benign action", kind=LogEntryKind.EDIT)
log_entry = target_object.log_entries.last()
log_entry.message = "sneak"
with pytest.raises(ValueError):
Expand All @@ -100,9 +106,8 @@ def test_log_mutation(target_object):
@pytest.mark.django_db
def test_user_logging(admin_user, target_object):
target_object.add_log_entry(
message="audit",
kind=LogEntryKind.AUDIT,
user=admin_user)
message="audit", kind=LogEntryKind.AUDIT, user=admin_user
)
log_entry = target_object.log_entries.last()
assert log_entry.user.is_superuser # we put an admin in

Expand All @@ -119,14 +124,14 @@ def test_modify_before_save(target_object):
@pytest.mark.django_db
def test_extra_with_no_extra_field_is_an_error(target_object):
with pytest.raises(NoExtraField):
target_object.add_log_entry(message="hi", extra={'henlo': 'fren'})
target_object.add_log_entry(message="hi", extra={"henlo": "fren"})


@pytest.mark.django_db
def test_extra_field():
target_object = ThirdLoggedModel.objects.create()
target_object.add_log_entry(message="hi", extra='hoi')
assert target_object.log_entries.last().extra == 'hoi'
target_object.add_log_entry(message="hi", extra="hoi")
assert target_object.log_entries.last().extra == "hoi"


@pytest.mark.django_db
Expand All @@ -147,10 +152,7 @@ def test_invalid_kinds(target_object):

@pytest.mark.django_db
def test_free_log_entries():
fle = FreeLogEntry.add_log_entry(
target=None,
message="hello world"
)
fle = FreeLogEntry.add_log_entry(target=None, message="hello world")
assert fle.pk
assert not fle.target
assert FreeLogEntry.objects.last() == fle
Expand Down
7 changes: 4 additions & 3 deletions analog_tests/test_util.py
Expand Up @@ -19,13 +19,14 @@ def test_unknown():

def test_internal():
kind_map = LogEntryKindMap()
assert kind_map.__module__ == 'analog.util'
assert LogEntryKindMap.__module__ == 'analog.util'
assert kind_map.__module__ == "analog.util"
assert LogEntryKindMap.__module__ == "analog.util"


def test_internal_attribute_error():
kind_map = LogEntryKindMap()
with pytest.raises(AttributeError) as excinfo:
kind_map.__wrapped__
assert str(excinfo.value) == (
"'LogEntryKindMap' object has no attribute '__wrapped__'")
"'LogEntryKindMap' object has no attribute '__wrapped__'"
)