Skip to content

Commit e677da6

Browse files
committed
refactored test generic import
1 parent b702da6 commit e677da6

File tree

11 files changed

+3013
-3366
lines changed

11 files changed

+3013
-3366
lines changed

tests/extras/test_utils/factories/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
UserFactory,
99
)
1010
from .accountability import CommunicationMessageFactory, FeedbackFactory, FeedbackMessageFactory, SurveyFactory
11+
from .api import APITokenFactory
1112
from .changelog import ChangelogFactory
1213
from .core import (
1314
BeneficiaryGroupFactory,
@@ -34,6 +35,7 @@
3435
AccountFactory,
3536
AccountTypeFactory,
3637
DeliveryMechanismFactory,
38+
FinancialInstitutionFactory,
3739
FinancialServiceProviderFactory,
3840
FinancialServiceProviderXlsxTemplateFactory,
3941
FspXlsxTemplatePerDeliveryMechanismFactory,
@@ -47,11 +49,12 @@
4749
WesternUnionPaymentPlanReportFactory,
4850
)
4951
from .program import ProgramCycleFactory, ProgramFactory
50-
from .registration_data import RegistrationDataImportFactory
52+
from .registration_data import ImportDataFactory, RegistrationDataImportFactory
5153
from .steficon import RuleCommitFactory, RuleFactory
5254

5355
__all__ = [
5456
"AdminAreaLimitedToFactory",
57+
"APITokenFactory",
5558
"AreaFactory",
5659
"AreaTypeFactory",
5760
"BeneficiaryGroupFactory",
@@ -71,11 +74,13 @@
7174
"DocumentTypeFactory",
7275
"EntitlementCardFactory",
7376
"HouseholdFactory",
77+
"ImportDataFactory",
7478
"IndividualFactory",
7579
"IndividualRoleInHouseholdFactory",
7680
"AccountFactory",
7781
"AccountTypeFactory",
7882
"DeliveryMechanismFactory",
83+
"FinancialInstitutionFactory",
7984
"FinancialServiceProviderFactory",
8085
"FspXlsxTemplatePerDeliveryMechanismFactory",
8186
"FinancialServiceProviderXlsxTemplateFactory",
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""API-related factories."""
2+
3+
from django.utils import timezone
4+
from factory import LazyFunction
5+
from factory.django import DjangoModelFactory
6+
7+
from hope.models import APIToken
8+
from hope.models.utils import Grant
9+
10+
11+
class APITokenFactory(DjangoModelFactory):
12+
"""Factory for API tokens."""
13+
14+
class Meta:
15+
model = APIToken
16+
17+
# key is auto-generated by model.save() if not provided
18+
allowed_ips = ""
19+
grants = [Grant.API_RDI_CREATE.name]
20+
valid_from = LazyFunction(timezone.now)
21+
valid_to = None

tests/extras/test_utils/factories/payment.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
Account,
1111
AccountType,
1212
DeliveryMechanism,
13+
FinancialInstitution,
1314
FinancialServiceProvider,
1415
FinancialServiceProviderXlsxTemplate,
1516
FspXlsxTemplatePerDeliveryMechanism,
@@ -178,6 +179,14 @@ class Meta:
178179
name = factory.Sequence(lambda n: f"WU Invoice {n}")
179180

180181

182+
class FinancialInstitutionFactory(DjangoModelFactory):
183+
class Meta:
184+
model = FinancialInstitution
185+
186+
name = factory.Sequence(lambda n: f"Financial Institution {n}")
187+
type = FinancialInstitution.FinancialInstitutionType.BANK
188+
189+
181190
class WesternUnionPaymentPlanReportFactory(DjangoModelFactory):
182191
class Meta:
183192
model = WesternUnionPaymentPlanReport

tests/extras/test_utils/factories/registration_data.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,23 @@
33
import factory
44
from factory.django import DjangoModelFactory
55

6-
from hope.models import RegistrationDataImport
6+
from hope.models import ImportData, RegistrationDataImport
77

88
from .account import UserFactory
99
from .core import BusinessAreaFactory
1010
from .program import ProgramFactory
1111

1212

13+
class ImportDataFactory(DjangoModelFactory):
14+
class Meta:
15+
model = ImportData
16+
17+
status = ImportData.STATUS_PENDING
18+
data_type = ImportData.XLSX
19+
business_area_slug = ""
20+
file = factory.django.FileField(filename="test_data.xlsx")
21+
22+
1323
class RegistrationDataImportFactory(DjangoModelFactory):
1424
class Meta:
1525
model = RegistrationDataImport

0 commit comments

Comments
 (0)