From 6a0999601af740d7b5e880db1b607ae61c14c1ea Mon Sep 17 00:00:00 2001 From: Chad Whitacre Date: Tue, 3 May 2016 21:53:54 -0400 Subject: [PATCH] stub out payroll mixin for teams --- gratipay/models/team/__init__.py | 3 ++- gratipay/models/team/mixins/__init__.py | 3 +++ gratipay/models/team/mixins/payroll.py | 7 +++++++ tests/py/test_team_payroll.py | 11 +++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 gratipay/models/team/mixins/__init__.py create mode 100644 gratipay/models/team/mixins/payroll.py create mode 100644 tests/py/test_team_payroll.py diff --git a/gratipay/models/team/__init__.py b/gratipay/models/team/__init__.py index 5e0ec230fe..531ef8af4d 100644 --- a/gratipay/models/team/__init__.py +++ b/gratipay/models/team/__init__.py @@ -7,6 +7,7 @@ from aspen import json, log from gratipay.exceptions import InvalidTeamName from gratipay.models import add_event +from gratipay.models.team import mixins from postgres.orm import Model from gratipay.billing.exchanges import MINIMUM_CHARGE @@ -30,7 +31,7 @@ def slugize(name): return slug -class Team(Model): +class Team(Model, mixins.Payroll): """Represent a Gratipay team. """ diff --git a/gratipay/models/team/mixins/__init__.py b/gratipay/models/team/mixins/__init__.py new file mode 100644 index 0000000000..7bad8fb2d9 --- /dev/null +++ b/gratipay/models/team/mixins/__init__.py @@ -0,0 +1,3 @@ +from .payroll import PayrollMixin as Payroll + +__all__ = ['Payroll'] diff --git a/gratipay/models/team/mixins/payroll.py b/gratipay/models/team/mixins/payroll.py new file mode 100644 index 0000000000..5538c9f531 --- /dev/null +++ b/gratipay/models/team/mixins/payroll.py @@ -0,0 +1,7 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + + +class PayrollMixin(object): + """This mixing provides management of payroll for + :py:class:`~gratipay.models.team.Team` objects. + """ diff --git a/tests/py/test_team_payroll.py b/tests/py/test_team_payroll.py new file mode 100644 index 0000000000..8bba5bb4ae --- /dev/null +++ b/tests/py/test_team_payroll.py @@ -0,0 +1,11 @@ +from __future__ import absolute_import, division, print_function, unicode_literals + +from gratipay.testing import Harness +from gratipay.models.team import mixins + + +class Tests(Harness): + + def test_team_object_subclasses_payroll_mixin(self): + enterprise = self.make_team('The Enterprise') + assert isinstance(enterprise, mixins.Payroll)