Skip to content

Commit

Permalink
[Issue #174] adjusted and added factories.
Browse files Browse the repository at this point in the history
  • Loading branch information
scaphilo committed Oct 3, 2018
1 parent 1fa8a83 commit 3531ea8
Show file tree
Hide file tree
Showing 20 changed files with 221 additions and 46 deletions.
Empty file.
14 changes: 14 additions & 0 deletions koalixcrm/accounting/factories/factory_product_category.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-

import factory
from koalixcrm.accounting.models import ProductCategory


class StandardProductCategoryFactory(factory.django.DjangoModelFactory):
class Meta:
model = ProductCategory
django_get_or_create = ('title',)

title = "Service"
profit_account = ""
loss_account = ""
43 changes: 43 additions & 0 deletions koalixcrm/crm/factories/factory_agreement.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-

import factory
import datetime
from koalixcrm.crm.models import Agreement
from koalixcrm.crm.factories.factory_resource import StandardResourceFactory
from koalixcrm.crm.factories.factory_human_resource import StandardHumanResourceFactory
from koalixcrm.crm.factories.factory_task import StandardTaskFactory
from koalixcrm.crm.factories.factory_unit import StandardUnitFactory
from koalixcrm.crm.factories.factory_resource_price import StandardResourcePriceFactory
from koalixcrm.crm.factories.factory_agreement_type import StandardAgreementTypeFactory
from koalixcrm.crm.factories.factory_agreement_status import AgreedAgreementStatusFactory
from koalixcrm.test_support_functions import make_date_utc


class StandardAgreementToTaskFactory(factory.django.DjangoModelFactory):
class Meta:
model = Agreement

date_from = make_date_utc(datetime.datetime(2018, 6, 15, 00))
date_until = make_date_utc(datetime.datetime(2024, 6, 15, 00))
amount = "112.50"
task = factory.SubFactory(StandardTaskFactory)
resource = factory.SubFactory(StandardResourceFactory)
unit = factory.SubFactory(StandardUnitFactory)
status = factory.SubFactory(AgreedAgreementStatusFactory)
costs = factory.SubFactory(StandardResourcePriceFactory)
type = factory.SubFactory(StandardAgreementTypeFactory)


class StandardHumanResourceAgreementToTaskFactory(factory.django.DjangoModelFactory):
class Meta:
model = Agreement

date_from = make_date_utc(datetime.datetime(2018, 6, 15, 00))
date_until = make_date_utc(datetime.datetime(2024, 6, 15, 00))
amount = "112.50"
task = factory.SubFactory(StandardTaskFactory)
resource = factory.SubFactory(StandardHumanResourceFactory)
unit = factory.SubFactory(StandardUnitFactory)
status = factory.SubFactory(AgreedAgreementStatusFactory)
costs = factory.SubFactory(StandardResourcePriceFactory)
type = factory.SubFactory(StandardAgreementTypeFactory)
34 changes: 34 additions & 0 deletions koalixcrm/crm/factories/factory_agreement_status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-

import factory
from koalixcrm.crm.models import AgreementStatus


class AgreedAgreementStatusFactory(factory.django.DjangoModelFactory):
class Meta:
model = AgreementStatus
django_get_or_create = ('title',)

title = "Done"
description = "This agreement is agreed"
is_agreed = True


class PlannedAgreementStatusFactory(factory.django.DjangoModelFactory):
class Meta:
model = AgreementStatus
django_get_or_create = ('title',)

title = "Planned"
description = "This agreement is planned"
is_agreed = False


class StartedAgreementStatusFactory(factory.django.DjangoModelFactory):
class Meta:
model = AgreementStatus
django_get_or_create = ('title',)

title = "Started"
description = "This agreement is started"
is_agreed = False
12 changes: 12 additions & 0 deletions koalixcrm/crm/factories/factory_agreement_type.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-

import factory
from koalixcrm.crm.models import AgreementType


class StandardAgreementTypeFactory(factory.django.DjangoModelFactory):
class Meta:
model = AgreementType

title = 'This is a test Agreement Type'
description = "This is a description of such a Agreement Type"
8 changes: 7 additions & 1 deletion koalixcrm/crm/factories/factory_estimation.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# -*- coding: utf-8 -*-

import factory
import datetime
from koalixcrm.crm.models import Estimation
from koalixcrm.crm.factories.factory_resource import StandardResourceFactory
from koalixcrm.crm.factories.factory_human_resource import StandardHumanResourceFactory
from koalixcrm.crm.factories.factory_task import StandardTaskFactory
from koalixcrm.test_support_functions import make_date_utc


class StandardEstimationToTaskFactory(factory.django.DjangoModelFactory):
Expand All @@ -14,6 +16,8 @@ class Meta:
planned_effort = "112.50"
task = factory.SubFactory(StandardTaskFactory)
resource = factory.SubFactory(StandardResourceFactory)
date_from = make_date_utc(datetime.datetime(2018, 5, 2, 00))
date_to = make_date_utc(datetime.datetime(2018, 6, 15, 00))


class StandardHumanResourceEstimationToTaskFactory(factory.django.DjangoModelFactory):
Expand All @@ -22,4 +26,6 @@ class Meta:

planned_effort = "112.50"
task = factory.SubFactory(StandardTaskFactory)
resource = factory.SubFactory(StandardHumanResourceFactory)
resource = factory.SubFactory(StandardHumanResourceFactory)
date_from = make_date_utc(datetime.datetime(2018, 5, 2, 00))
date_to = make_date_utc(datetime.datetime(2018, 6, 15, 00))
34 changes: 34 additions & 0 deletions koalixcrm/crm/factories/factory_estimation_status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-

import factory
from koalixcrm.crm.models import EstimationStatus


class ObsoleteEstimationStatusFactory(factory.django.DjangoModelFactory):
class Meta:
model = EstimationStatus
django_get_or_create = ('title',)

title = "Done"
description = "This estimation is obsolete"
is_obsolete = True


class PlannedEstimationStatusFactory(factory.django.DjangoModelFactory):
class Meta:
model = EstimationStatus
django_get_or_create = ('title',)

title = "Planned"
description = "This estimation is planned"
is_obsolete = False


class StartedEstimationStatusFactory(factory.django.DjangoModelFactory):
class Meta:
model = EstimationStatus
django_get_or_create = ('title',)

title = "Started"
description = "This estimation is started"
is_obsolete = False
4 changes: 4 additions & 0 deletions koalixcrm/crm/factories/factory_human_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,14 @@
import factory
from koalixcrm.crm.models import HumanResource
from koalixcrm.crm.factories.factory_user import StaffUserFactory
from koalixcrm.crm.factories.factory_resource_type import StandardResourceTypeFactory
from koalixcrm.crm.factories.factory_resource_manager import StandardResourceManagerFactory


class StandardHumanResourceFactory(factory.django.DjangoModelFactory):
class Meta:
model = HumanResource

user = factory.SubFactory(StaffUserFactory)
resource_type = factory.SubFactory(StandardResourceTypeFactory)
resource_manager = factory.SubFactory(StandardResourceManagerFactory)
2 changes: 2 additions & 0 deletions koalixcrm/crm/factories/factory_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from koalixcrm.crm.factories.factory_project_status import StartedProjectStatusFactory
from koalixcrm.djangoUserExtension.factories.factory_template_set import StandardTemplateSetFactory
from koalixcrm.crm.factories.factory_user import StaffUserFactory
from koalixcrm.crm.factories.factory_currency import StandardCurrencyFactory


class StandardProjectFactory(factory.django.DjangoModelFactory):
Expand All @@ -17,6 +18,7 @@ class Meta:
description = "This is description of a test Project"
project_status = factory.SubFactory(StartedProjectStatusFactory)
default_template_set = factory.SubFactory(StandardTemplateSetFactory)
default_currency = factory.SubFactory(StandardCurrencyFactory)
date_of_creation = "2018-05-01"
last_modification = "2018-05-02"
last_modified_by = factory.SubFactory(StaffUserFactory)
6 changes: 3 additions & 3 deletions koalixcrm/crm/factories/factory_resource_price.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from koalixcrm.test_support_functions import make_date_utc


class StandardPriceFactory(factory.django.DjangoModelFactory):
class StandardResourcePriceFactory(factory.django.DjangoModelFactory):
class Meta:
model = ResourcePrice
django_get_or_create = ('product',
Expand All @@ -25,9 +25,9 @@ class Meta:
valid_until = make_date_utc(datetime.datetime(2024, 6, 15, 00))


class HighPriceFactory(factory.django.DjangoModelFactory):
class HighResourcePriceFactory(factory.django.DjangoModelFactory):
class Meta:
model = Price
model = ResourcePrice
django_get_or_create = ('product',
'price')

Expand Down
2 changes: 0 additions & 2 deletions koalixcrm/crm/factories/factory_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ class Meta:
model = Task

title = 'This is a test Task'
planned_start_date = make_date_utc(datetime.datetime(2018, 5, 2, 00))
planned_end_date = make_date_utc(datetime.datetime(2018, 6, 15, 00))
project = factory.SubFactory(StandardProjectFactory)
description = "This is a description"
status = factory.SubFactory(StartedTaskStatusFactory)
Expand Down
18 changes: 18 additions & 0 deletions koalixcrm/crm/factories/factory_unit_transform.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-

import factory
from koalixcrm.crm.models import UnitTransform
from koalixcrm.crm.factories.factory_unit import StandardUnitFactory, SmallUnitFactory
from koalixcrm.crm.factories.factory_product_type import StandardProductTypeFactory


class StandardUnitTransformFactory(factory.django.DjangoModelFactory):
class Meta:
model = UnitTransform
django_get_or_create = ('from_unit',
'to_unit')

from_unit = factory.SubFactory(StandardUnitFactory)
to_unit = factory.SubFactory(SmallUnitFactory)
product_type = factory.SubFactory(StandardProductTypeFactory)
factor = 1.10
1 change: 1 addition & 0 deletions koalixcrm/crm/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
from koalixcrm.crm.reporting.agreement_type import *
from koalixcrm.crm.reporting.agreement_status import *
from koalixcrm.crm.reporting.estimation import *
from koalixcrm.crm.reporting.estimation_status import *
from koalixcrm.crm.reporting.human_resource import *
from koalixcrm.crm.reporting.resource_manager import *
from koalixcrm.crm.reporting.resource_type import *
Expand Down
1 change: 0 additions & 1 deletion koalixcrm/crm/reporting/agreement.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ class Agreement(models.Model):
null=True)

def calculated_costs(self):
currency = self.task.project.default_currency
return 0

def match_with_work(self, work):
Expand Down
10 changes: 5 additions & 5 deletions koalixcrm/crm/tests/test_calculations_document.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from koalixcrm.crm.models import Tax
from koalixcrm.crm.models import Unit
from koalixcrm.crm.models import Quote
from koalixcrm.crm.models import Price
from koalixcrm.crm.models import ProductPrice
from koalixcrm.crm.models import SalesDocumentPosition
from koalixcrm.crm.documents.calculations import Calculations
from koalixcrm.test_support_functions import make_date_utc
Expand Down Expand Up @@ -77,14 +77,14 @@ def setUp(self):
test_product = ProductType.objects.create(
description="This is a test product " + i.__str__(),
title="This is a test product " + i.__str__(),
product_number=12334235+i,
product_type_identifier=12334235+i,
default_unit=test_unit,
last_modification=date_now,
last_modified_by=test_user,
tax=test_tax,
)
Price.objects.create(
product=test_product,
ProductPrice.objects.create(
product_type=test_product,
unit=test_unit,
currency=test_currency,
customer_group=test_customer_group,
Expand All @@ -98,7 +98,7 @@ def setUp(self):
quantity=0.333*i,
description="This is a Testposition " + i.__str__(),
discount=i*5,
product=test_product,
product_type=test_product,
unit=test_unit,
overwrite_product_price=False,
)
Expand Down
11 changes: 7 additions & 4 deletions koalixcrm/crm/tests/test_task_effective_duration.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from koalixcrm.djangoUserExtension.factories.factory_user_extension import StandardUserExtensionFactory
from koalixcrm.crm.factories.factory_task import StandardTaskFactory
from koalixcrm.test_support_functions import make_date_utc
from koalixcrm.crm.factories.factory_estimation import StandardHumanResourceEstimationToTaskFactory


@pytest.fixture()
Expand Down Expand Up @@ -71,13 +72,15 @@ def setUp(self):
self.test_user_extension = StandardUserExtensionFactory.create(user=self.test_user)
self.test_reporting_period = StandardReportingPeriodFactory.create()
self.test_1st_task = StandardTaskFactory.create(title="1st Test Task",
planned_start_date=start_date,
planned_end_date=end_date_first_task,
project=self.test_reporting_period.project)
self.estimation_1st_task = StandardHumanResourceEstimationToTaskFactory(task=self.test_1st_task,
date_from=start_date,
date_to=end_date_first_task)
self.test_2nd_task = StandardTaskFactory.create(title="2nd Test Task",
planned_start_date=start_date,
planned_end_date=end_date_second_task,
project=self.test_reporting_period.project)
self.estimation_2nd_task = StandardHumanResourceEstimationToTaskFactory(task=self.test_2nd_task,
date_from=start_date,
date_to=end_date_second_task)

@pytest.mark.back_end_tests
def test_effective_duration(self):
Expand Down
11 changes: 7 additions & 4 deletions koalixcrm/crm/tests/test_task_effective_effort.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from koalixcrm.djangoUserExtension.factories.factory_user_extension import StandardUserExtensionFactory
from koalixcrm.crm.factories.factory_work import StandardWorkFactory
from koalixcrm.crm.factories.factory_task import StandardTaskFactory
from koalixcrm.crm.factories.factory_estimation import StandardHumanResourceEstimationToTaskFactory
from koalixcrm.test_support_functions import make_date_utc


Expand All @@ -28,13 +29,15 @@ def setUp(self):
self.test_user_extension = StandardUserExtensionFactory.create(user=self.test_user)
self.test_reporting_period = StandardReportingPeriodFactory.create()
self.test_1st_task = StandardTaskFactory.create(title="1st Test Task",
planned_start_date=start_date,
planned_end_date=end_date_first_task,
project=self.test_reporting_period.project)
self.estimation_1st_task = StandardHumanResourceEstimationToTaskFactory(task=self.test_1st_task,
date_from=start_date,
date_to=end_date_first_task)
self.test_2nd_task = StandardTaskFactory.create(title="2nd Test Task",
planned_start_date=start_date,
planned_end_date=end_date_second_task,
project=self.test_reporting_period.project)
self.estimation_2nd_task = StandardHumanResourceEstimationToTaskFactory(task=self.test_2nd_task,
date_from=start_date,
date_to=end_date_second_task)

@pytest.mark.back_end_tests
def test_effective_effort(self):
Expand Down
12 changes: 8 additions & 4 deletions koalixcrm/crm/tests/test_task_planned_duration.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from koalixcrm.crm.factories.factory_reporting_period import StandardReportingPeriodFactory
from koalixcrm.djangoUserExtension.factories.factory_user_extension import StandardUserExtensionFactory
from koalixcrm.crm.factories.factory_task import StandardTaskFactory
from koalixcrm.crm.factories.factory_estimation import StandardHumanResourceEstimationToTaskFactory
from koalixcrm.test_support_functions import make_date_utc


Expand All @@ -27,13 +28,16 @@ def setUp(self):
self.test_user_extension = StandardUserExtensionFactory.create(user=self.test_user)
self.test_reporting_period = StandardReportingPeriodFactory.create()
self.test_1st_task = StandardTaskFactory.create(title="1st Test Task",
planned_start_date=start_date,
planned_end_date=end_date_first_task,
project=self.test_reporting_period.project)
self.estimation_1st_task = StandardHumanResourceEstimationToTaskFactory(task=self.test_1st_task,
date_from=start_date,
date_to=end_date_first_task)
self.test_2nd_task = StandardTaskFactory.create(title="2nd Test Task",
planned_start_date=start_date,
planned_end_date=end_date_second_task,
project=self.test_reporting_period.project)
self.estimation_2nd_task = StandardHumanResourceEstimationToTaskFactory(task=self.test_2nd_task,
date_from=start_date,
date_to=end_date_second_task)


@pytest.mark.back_end_tests
def test_planned_duration(self):
Expand Down
Loading

0 comments on commit 3531ea8

Please sign in to comment.