Skip to content

Commit

Permalink
Reformat with Black
Browse files Browse the repository at this point in the history
  • Loading branch information
akx committed Oct 13, 2020
1 parent 5bbea73 commit f0a48cd
Show file tree
Hide file tree
Showing 12 changed files with 151 additions and 139 deletions.
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__'"
)

0 comments on commit f0a48cd

Please sign in to comment.