コード例 #1
0
    def setUp(self):
        self.subsidiary = Subsidiary(name='test', code='t')
        self.subsidiary.save()

        # Lead.post_save needs a superuser, let's create one
        user = User.objects.create_user(username='******')
        user.is_superuser = True
        user.save()

        # Silence logger
        utils.logger.addHandler(logging.NullHandler())
コード例 #2
0
ファイル: tests.py プロジェクト: tuxella/pydici
    def setUp(self):
        self.subsidiary = Subsidiary(name="test", code="t")
        self.subsidiary.save()

        # Lead.post_save needs a superuser, let's create one
        user = User.objects.create_user(username="******")
        user.is_superuser = True
        user.save()

        # Silence logger
        utils.logger.addHandler(logging.NullHandler())
コード例 #3
0
class ProposalSheetImportTest(TestCase):
    def setUp(self):
        self.subsidiary = Subsidiary(name='test', code='t')
        self.subsidiary.save()

        # Lead.post_save needs a superuser, let's create one
        user = User.objects.create_user(username='******')
        user.is_superuser = True
        user.save()

        # Silence logger
        utils.logger.addHandler(logging.NullHandler())

    def test_import_proposal_sheets(self):
        context = utils.ImportContext(subsidiary=self.subsidiary)
        firm_lst = utils.load_objects(os.path.join(TEST_DIR, 'proposals'), 'firms')
        utils.import_firms(firm_lst)
        contact_lst = utils.load_objects(os.path.join(TEST_DIR, 'proposals'), 'contacts')
        utils.import_contacts(contact_lst)
        proposal_sheet_lst = utils.load_objects(os.path.join(TEST_DIR, 'proposals'), 'proposal_sheets')
        utils.import_proposal_sheets(proposal_sheet_lst, context)

        # Check lead 3, linked to a firm
        lead = Lead.objects.get(external_id="incwo:3")
        self.assertEquals(lead.state, 'WON')
        self.assertEquals(lead.deal_id, 'D1234-56789')
        self.assertEquals(lead.name, 'Project Foobar')
        self.assertEquals(lead.description, 'Echo Alpha Tango')

        client = Client.objects.get(organisation__company__external_id="incwo:1", contact=None)
        self.assertEquals(lead.client, client)

        # Check lead 4, linked to a contact
        lead = Lead.objects.get(external_id="incwo:4")
        self.assertEquals(lead.state, 'WON')
        self.assertEquals(lead.deal_id, 'D5678-90123')
        self.assertEquals(lead.name, 'No Firm ID Proposal')

        client = Client.objects.get(contact__external_id="incwo:12")
        self.assertEquals(lead.client, client)

        # No lead 5, because it was lost
        self.assertFalse(Lead.objects.filter(external_id="incwo:5"))

    def test_import_proposal_lines(self):
        context = utils.ImportContext(subsidiary=self.subsidiary,
                                     import_missions=True)
        load_and_import_objects(os.path.join(TEST_DIR, 'proposal-lines'), context)

        lead = Lead.objects.get(external_id="incwo:3")
        EXPECTED_DESCRIPTION = \
u"""Echo Alpha Tango
*Engineering*
- Dev. Dev Foobar. 3.5 M/D × 500 € = 1750 €
- Dev _[option]_. Implement remote control. 2 M/D × 450 € = 900 €
Total: 2400 €
"""

        self.assertEquals(lead.sales, Decimal('1.75'))

        # There should be one associated mission
        missions = lead.mission_set.all()
        self.assertEquals(len(missions), 1)
        mission = missions[0]
        self.assertEquals(mission.price, Decimal('1.75'))
コード例 #4
0
ファイル: tests.py プロジェクト: tuxella/pydici
class ProposalSheetImportTest(TestCase):
    def setUp(self):
        self.subsidiary = Subsidiary(name="test", code="t")
        self.subsidiary.save()

        # Lead.post_save needs a superuser, let's create one
        user = User.objects.create_user(username="******")
        user.is_superuser = True
        user.save()

        # Silence logger
        utils.logger.addHandler(logging.NullHandler())

    def test_import_proposal_sheets(self):
        context = utils.ImportContext(subsidiary=self.subsidiary)
        firm_lst = utils.load_objects(os.path.join(TEST_DIR, "proposals"), "firms")
        utils.import_firms(firm_lst)
        contact_lst = utils.load_objects(os.path.join(TEST_DIR, "proposals"), "contacts")
        utils.import_contacts(contact_lst)
        proposal_sheet_lst = utils.load_objects(os.path.join(TEST_DIR, "proposals"), "proposal_sheets")
        utils.import_proposal_sheets(proposal_sheet_lst, context)

        # Check lead 3, linked to a firm
        lead = Lead.objects.get(external_id="incwo:3")
        self.assertEquals(lead.state, "WON")
        self.assertEquals(lead.deal_id, "D1234-56789")
        self.assertEquals(lead.name, "Project Foobar")
        self.assertEquals(lead.description, "Echo Alpha Tango")

        client = Client.objects.get(organisation__company__external_id="incwo:1", contact=None)
        self.assertEquals(lead.client, client)

        # Check lead 4, linked to a contact
        lead = Lead.objects.get(external_id="incwo:4")
        self.assertEquals(lead.state, "WON")
        self.assertEquals(lead.deal_id, "D5678-90123")
        self.assertEquals(lead.name, "No Firm ID Proposal")

        client = Client.objects.get(contact__external_id="incwo:12")
        self.assertEquals(lead.client, client)

        # No lead 5, because it was lost
        self.assertFalse(Lead.objects.filter(external_id="incwo:5"))

    def test_import_proposal_lines(self):
        context = utils.ImportContext(subsidiary=self.subsidiary, import_missions=True)
        load_and_import_objects(os.path.join(TEST_DIR, "proposal-lines"), context)

        lead = Lead.objects.get(external_id="incwo:3")
        EXPECTED_DESCRIPTION = u"""Echo Alpha Tango
*Engineering*
- Dev. Dev Foobar. 3.5 M/D × 500 € = 1750 €
- Dev _[option]_. Implement remote control. 2 M/D × 450 € = 900 €
Total: 2400 €
"""

        self.assertEquals(lead.sales, Decimal("1.75"))

        # There should be one associated mission
        missions = lead.mission_set.all()
        self.assertEquals(len(missions), 1)
        mission = missions[0]
        self.assertEquals(mission.price, Decimal("1.75"))