Skip to content

Commit

Permalink
Updated fancy graph tests to data provider tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Theophile-Madet committed Jan 31, 2025
1 parent 6b79e74 commit 7af034f
Show file tree
Hide file tree
Showing 20 changed files with 293 additions and 351 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

from tapir.coop.models import ShareOwner
from tapir.shifts.models import CreateShiftAttendanceTemplateLogEntry
from tapir.statistics.views.fancy_graph.number_of_abcd_members_view import (
NumberOfAbcdMembersAtDateView,
from tapir.statistics.services.data_providers.data_provider_abcd_members import (
DataProviderAbcdMembers,
)
from tapir.utils.tests_utils import (
TapirFactoryTestBase,
Expand All @@ -15,7 +15,7 @@
)


class TestNumberOfAbcdMembersView(TapirFactoryTestBase):
class TestDataProviderAbcdMembers(TapirFactoryTestBase):
NOW = datetime.datetime(year=2023, month=4, day=1, hour=12)
REFERENCE_TIME = timezone.make_aware(
datetime.datetime(year=2022, month=6, day=15, hour=12)
Expand All @@ -25,36 +25,31 @@ def setUp(self) -> None:
super().setUp()
self.NOW = mock_timezone_now(self, self.NOW)

def test_calculateDatapoint_memberIsAbcdButIsNotWorking_notCounted(self):
def test_getQueryset_memberIsAbcdButIsNotWorking_notIncluded(self):
tapir_user = create_member_that_is_working(self, self.REFERENCE_TIME)
ShareOwner.objects.update(is_investing=True)
create_attendance_template_log_entry_in_the_past(
CreateShiftAttendanceTemplateLogEntry, tapir_user, self.REFERENCE_TIME
)

result = NumberOfAbcdMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderAbcdMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberIsWorkingButIsNotAbcd_notCounted(self):
def test_calculateDatapoint_memberIsWorkingButIsNotAbcd_notIncluded(self):
create_member_that_is_working(self, self.REFERENCE_TIME)

result = NumberOfAbcdMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderAbcdMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberIsWorkingAndAbcd_counted(self):
def test_calculateDatapoint_memberIsWorkingAndAbcd_included(self):
tapir_user = create_member_that_is_working(self, self.REFERENCE_TIME)
create_attendance_template_log_entry_in_the_past(
CreateShiftAttendanceTemplateLogEntry, tapir_user, self.REFERENCE_TIME
)

result = NumberOfAbcdMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderAbcdMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(1, result)
self.assertEqual(1, queryset.count())
self.assertIn(tapir_user.share_owner, queryset)
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@

from tapir.coop.models import ShareOwnership
from tapir.coop.tests.factories import ShareOwnerFactory
from tapir.statistics.views.fancy_graph.number_of_active_members_view import (
NumberOfActiveMembersAtDateView,
from tapir.statistics.services.data_providers.data_provider_active_members import (
DataProviderActiveMembers,
)
from tapir.utils.tests_utils import (
TapirFactoryTestBase,
mock_timezone_now,
)


class TestNumberOfActiveMembersView(TapirFactoryTestBase):
class TestDataProviderActiveMembers(TapirFactoryTestBase):
NOW = datetime.datetime(year=2023, month=4, day=1, hour=12)
REFERENCE_TIME = timezone.make_aware(
datetime.datetime(year=2022, month=6, day=15, hour=12)
Expand All @@ -23,23 +23,20 @@ def setUp(self) -> None:
super().setUp()
self.NOW = mock_timezone_now(self, self.NOW)

def test_calculateDatapoint_memberIsNotActive_notCounted(self):
def test_getQueryset_memberIsNotActive_notIncluded(self):
ShareOwnerFactory.create(nb_shares=0)

result = NumberOfActiveMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderActiveMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberIsActive_counted(self):
ShareOwnerFactory.create(nb_shares=1, is_investing=False)
def test_getQueryset_memberIsActive_included(self):
share_owner = ShareOwnerFactory.create(nb_shares=1, is_investing=False)
ShareOwnership.objects.update(
start_date=self.REFERENCE_TIME.date() - datetime.timedelta(days=1)
)

result = NumberOfActiveMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderActiveMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(1, result)
self.assertEqual(1, queryset.count())
self.assertIn(share_owner, queryset)
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,16 @@
from tapir.accounts.tests.factories.factories import TapirUserFactory
from tapir.coop.models import ShareOwnership
from tapir.coop.tests.factories import ShareOwnerFactory
from tapir.statistics.views.fancy_graph.number_of_active_members_with_account_view import (
NumberOfActiveMembersWithAccountAtDateView,
from tapir.statistics.services.data_providers.data_provider_active_members_with_account import (
DataProviderActiveMembersWithAccount,
)
from tapir.utils.tests_utils import (
TapirFactoryTestBase,
mock_timezone_now,
)


class TestNumberOfActiveMembersView(TapirFactoryTestBase):
class TestDataProviderActiveMembersWithAccount(TapirFactoryTestBase):
NOW = datetime.datetime(year=2023, month=7, day=2, hour=18)
REFERENCE_TIME = timezone.make_aware(
datetime.datetime(year=2022, month=4, day=8, hour=10)
Expand All @@ -28,54 +28,56 @@ def create_test_user(self, is_investing=False, date_joined=None):
if date_joined is None:
date_joined = self.REFERENCE_TIME - datetime.timedelta(days=1)

TapirUserFactory.create(
tapir_user = TapirUserFactory.create(
share_owner__nb_shares=1,
share_owner__is_investing=is_investing,
date_joined=date_joined,
)
ShareOwnership.objects.update(
start_date=self.REFERENCE_TIME.date() - datetime.timedelta(days=1)
)
return tapir_user

def test_calculateDatapoint_memberIsNotActive_notCounted(self):
def test_getQueryset_memberIsNotActive_notIncluded(self):
self.create_test_user(is_investing=True)

result = NumberOfActiveMembersWithAccountAtDateView().calculate_datapoint(
queryset = DataProviderActiveMembersWithAccount.get_queryset(
self.REFERENCE_TIME
)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberHasNoAccount_notCounted(self):
def test_getQueryset_memberHasNoAccount_notIncluded(self):
ShareOwnerFactory.create(nb_shares=1, is_investing=False)
ShareOwnership.objects.update(
start_date=self.REFERENCE_TIME.date() - datetime.timedelta(days=1)
)

result = NumberOfActiveMembersWithAccountAtDateView().calculate_datapoint(
queryset = DataProviderActiveMembersWithAccount.get_queryset(
self.REFERENCE_TIME
)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberCreatedAccountAfterDate_notCounted(self):
def test_getQueryset_memberCreatedAccountAfterDate_notIncluded(self):
self.create_test_user(
date_joined=self.REFERENCE_TIME + datetime.timedelta(days=1)
)

result = NumberOfActiveMembersWithAccountAtDateView().calculate_datapoint(
queryset = DataProviderActiveMembersWithAccount.get_queryset(
self.REFERENCE_TIME
)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberCreatedAccountBeforeDate_counted(self):
self.create_test_user(
def test_getQueryset_memberCreatedAccountBeforeDate_included(self):
tapir_user = self.create_test_user(
date_joined=self.REFERENCE_TIME - datetime.timedelta(days=1)
)

result = NumberOfActiveMembersWithAccountAtDateView().calculate_datapoint(
queryset = DataProviderActiveMembersWithAccount.get_queryset(
self.REFERENCE_TIME
)

self.assertEqual(1, result)
self.assertEqual(1, queryset.count())
self.assertIn(tapir_user.share_owner, queryset)
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

from tapir.accounts.models import TapirUser
from tapir.coop.models import ShareOwner
from tapir.statistics.views.fancy_graph.number_of_co_purchasers_view import (
NumberOfCoPurchasersAtDateView,
from tapir.statistics.services.data_providers.data_provider_co_purchasers import (
DataProviderCoPurchasers,
)
from tapir.utils.tests_utils import (
TapirFactoryTestBase,
Expand All @@ -14,7 +14,7 @@
)


class TestNumberOfCoPurchasersView(TapirFactoryTestBase):
class TestDataProviderCoPurchasers(TapirFactoryTestBase):
NOW = datetime.datetime(year=2023, month=4, day=1, hour=12)
REFERENCE_TIME = timezone.make_aware(
datetime.datetime(year=2022, month=6, day=15, hour=12)
Expand All @@ -24,35 +24,30 @@ def setUp(self) -> None:
super().setUp()
self.NOW = mock_timezone_now(self, self.NOW)

def test_calculateDatapoint_memberHasCoPurchaserButCannotShop_notCounted(self):
def test_getQueryset_memberHasCoPurchaserButCannotShop_notIncluded(self):
create_member_that_can_shop(self, self.REFERENCE_TIME)
ShareOwner.objects.update(is_investing=True)
TapirUser.objects.update(co_purchaser="A test co-purchaser")

result = NumberOfCoPurchasersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderCoPurchasers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberCanShopButDoesntHaveACoPurchaser_notCounted(
def test_getQueryset_memberCanShopButDoesntHaveACoPurchaser_notIncluded(
self,
):
create_member_that_can_shop(self, self.REFERENCE_TIME)
TapirUser.objects.update(co_purchaser="")

result = NumberOfCoPurchasersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderCoPurchasers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberIsWorkingAndHasCoPurchaser_counted(self):
create_member_that_can_shop(self, self.REFERENCE_TIME)
def test_getQueryset_memberIsWorkingAndHasCoPurchaser_included(self):
tapir_user = create_member_that_can_shop(self, self.REFERENCE_TIME)
TapirUser.objects.update(co_purchaser="A test co-purchaser")

result = NumberOfCoPurchasersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderCoPurchasers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(1, result)
self.assertEqual(1, queryset.count())
self.assertIn(tapir_user.share_owner, queryset)
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
from tapir.accounts.models import TapirUser
from tapir.coop.models import ShareOwner
from tapir.shifts.models import ShiftExemption, ShiftUserData
from tapir.statistics.views.fancy_graph.number_of_exempted_members_view import (
NumberOfExemptedMembersAtDateView,
from tapir.statistics.services.data_providers.data_provider_exempted_members import (
DataProviderExemptedMembers,
)
from tapir.utils.tests_utils import (
TapirFactoryTestBase,
Expand All @@ -15,7 +15,7 @@
)


class TestNumberOfExemptedMembersAtDateView(TapirFactoryTestBase):
class TestDataProviderExemptedMembersAtDate(TapirFactoryTestBase):
NOW = datetime.datetime(year=2022, month=7, day=1, hour=12)
REFERENCE_TIME = timezone.make_aware(
datetime.datetime(year=2023, month=8, day=15, hour=18)
Expand All @@ -32,49 +32,45 @@ def create_member_where_the_only_reason_for_not_working_is_an_exemption(self):
end_date=self.REFERENCE_TIME.date() + datetime.timedelta(days=1),
shift_user_data=tapir_user.shift_user_data,
)
return tapir_user

def test_calculateDatapoint_exemptedMemberThatWouldWorkOtherwise_counted(self):
self.create_member_where_the_only_reason_for_not_working_is_an_exemption()

result = NumberOfExemptedMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
def test_getQueryset_exemptedMemberThatWouldWorkOtherwise_included(self):
tapir_user = (
self.create_member_where_the_only_reason_for_not_working_is_an_exemption()
)

self.assertEqual(1, result)
queryset = DataProviderExemptedMembers.get_queryset(self.REFERENCE_TIME)

def test_calculateDatapoint_memberHasExemptionButIsNotActive_notCounted(self):
self.assertEqual(1, queryset.count())
self.assertIn(tapir_user.share_owner, queryset)

def test_getQueryset_memberHasExemptionButIsNotActive_notIncluded(self):
self.create_member_where_the_only_reason_for_not_working_is_an_exemption()
ShareOwner.objects.update(is_investing=True)

result = NumberOfExemptedMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderExemptedMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberHasExemptionButIsFrozen_notCounted(self):
def test_getQueryset_memberHasExemptionButIsFrozen_notIncluded(self):
self.create_member_where_the_only_reason_for_not_working_is_an_exemption()
ShiftUserData.objects.update(is_frozen=True)

result = NumberOfExemptedMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderExemptedMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberHasExemptionButJoinedAfterDate_notCounted(self):
def test_getQueryset_memberHasExemptionButJoinedAfterDate_notIncluded(self):
self.create_member_where_the_only_reason_for_not_working_is_an_exemption()
TapirUser.objects.update(
date_joined=self.REFERENCE_TIME + datetime.timedelta(days=1)
)

result = NumberOfExemptedMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderExemptedMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())

def test_calculateDatapoint_memberHasExemptionThatIsNotActiveAtGivenDate_notCounted(
def test_getQueryset_memberHasExemptionThatIsNotActiveAtGivenDate_notIncluded(
self,
):
self.create_member_where_the_only_reason_for_not_working_is_an_exemption()
Expand All @@ -83,8 +79,6 @@ def test_calculateDatapoint_memberHasExemptionThatIsNotActiveAtGivenDate_notCoun
end_date=self.REFERENCE_TIME.date() + datetime.timedelta(days=2),
)

result = NumberOfExemptedMembersAtDateView().calculate_datapoint(
self.REFERENCE_TIME
)
queryset = DataProviderExemptedMembers.get_queryset(self.REFERENCE_TIME)

self.assertEqual(0, result)
self.assertEqual(0, queryset.count())
Loading

0 comments on commit 7af034f

Please sign in to comment.