From f8c4386d842983fcaacee43956211253b492ad07 Mon Sep 17 00:00:00 2001 From: Patrick Smith Date: Mon, 29 Oct 2018 16:16:47 -0400 Subject: [PATCH] Add model attribute for profile completeness --- atst/models/user.py | 9 +++++++++ tests/models/test_user.py | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 tests/models/test_user.py diff --git a/atst/models/user.py b/atst/models/user.py index 6d1c00ea..924e3425 100644 --- a/atst/models/user.py +++ b/atst/models/user.py @@ -38,6 +38,15 @@ class User(Base, mixins.TimestampsMixin, mixins.AuditableMixin): "date_latest_training", ] + @property + def profile_complete(self): + return all( + [ + getattr(self, field_name) is not None + for field_name in self.REQUIRED_FIELDS + ] + ) + @property def atat_permissions(self): return self.atat_role.permissions diff --git a/tests/models/test_user.py b/tests/models/test_user.py new file mode 100644 index 00000000..6d5e1d13 --- /dev/null +++ b/tests/models/test_user.py @@ -0,0 +1,17 @@ +import pytest + +from atst.models.user import User + +from tests.factories import UserFactory + + +def test_profile_complete_with_all_info(): + user = UserFactory.create() + assert user.profile_complete + + +@pytest.mark.parametrize("missing_field", User.REQUIRED_FIELDS) +def test_profile_complete_with_missing_info(missing_field): + user = UserFactory.create() + setattr(user, missing_field, None) + assert not user.profile_complete