Exemplo n.º 1
0
    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"))
Exemplo n.º 2
0
    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"))
Exemplo n.º 3
0
    def test_import_homonyms(self):
        lst = utils.load_objects(os.path.join(TEST_DIR, 'homonyms'), 'firms')
        utils.import_firms(lst)
        lst = utils.load_objects(os.path.join(TEST_DIR, 'homonyms'), 'contacts')
        utils.import_contacts(lst)

        contact_lst = Contact.objects.filter(name='John Doe')
        self.assertEquals(len(contact_lst), 2)
Exemplo n.º 4
0
    def test_import_homonyms(self):
        lst = utils.load_objects(os.path.join(TEST_DIR, "homonyms"), "firms")
        utils.import_firms(lst)
        lst = utils.load_objects(os.path.join(TEST_DIR, "homonyms"), "contacts")
        utils.import_contacts(lst)

        contact_lst = Contact.objects.filter(name="John Doe")
        self.assertEquals(len(contact_lst), 2)
Exemplo n.º 5
0
    def test_import_contact(self):
        firm_lst = utils.load_objects(os.path.join(TEST_DIR, 'contacts'), 'firms')
        utils.import_firms(firm_lst)
        contact_lst = utils.load_objects(os.path.join(TEST_DIR, 'contacts'), 'contacts')
        utils.import_contacts(contact_lst)

        company = Company.objects.get(pk=1)
        classic_contact = Contact.objects.get(external_id="incwo:12")
        jobless_contact = Contact.objects.get(external_id="incwo:34")

        company_contacts = Contact.objects.filter(client__organisation__company=company)
        self.assertItemsEqual(company_contacts, [classic_contact, jobless_contact])

        # Import twice to check for conflicts
        utils.import_firms(firm_lst)
        utils.import_contacts(contact_lst)
Exemplo n.º 6
0
 def test_import_firms_twice(self):
     lst = utils.load_objects(os.path.join(TEST_DIR, 'import-twice'), '.')
     nb_objects = len(lst)
     utils.import_firms(lst)
     self.assertEquals(len(Company.objects.all()), nb_objects)
     utils.import_firms(lst)
     self.assertEquals(len(Company.objects.all()), nb_objects)
Exemplo n.º 7
0
    def test_import_contact(self):
        firm_lst = utils.load_objects(os.path.join(TEST_DIR, "contacts"), "firms")
        utils.import_firms(firm_lst)
        contact_lst = utils.load_objects(os.path.join(TEST_DIR, "contacts"), "contacts")
        utils.import_contacts(contact_lst)

        company = Company.objects.get(pk=1)
        classic_contact = Contact.objects.get(external_id="incwo:12")
        jobless_contact = Contact.objects.get(external_id="incwo:34")

        company_contacts = Contact.objects.filter(client__organisation__company=company)
        self.assertItemsEqual(company_contacts, [classic_contact, jobless_contact])

        # Import twice to check for conflicts
        utils.import_firms(firm_lst)
        utils.import_contacts(contact_lst)
Exemplo n.º 8
0
 def test_import_firms_twice(self):
     lst = utils.load_objects(os.path.join(TEST_DIR, "import-twice"), ".")
     nb_objects = len(lst)
     utils.import_firms(lst)
     self.assertEquals(len(Company.objects.all()), nb_objects)
     utils.import_firms(lst)
     self.assertEquals(len(Company.objects.all()), nb_objects)
Exemplo n.º 9
0
def load_and_import_objects(base_dir, context):
    for sub_dir in utils.SUB_DIRS:
        object_dir = os.path.join(base_dir, sub_dir)
        if not os.path.exists(object_dir):
            continue
        lst = utils.load_objects(base_dir, sub_dir)
        import_method = getattr(utils, 'import_' + sub_dir)
        import_method(lst, context)
Exemplo n.º 10
0
def load_and_import_objects(base_dir, context):
    for sub_dir in utils.SUB_DIRS:
        object_dir = os.path.join(base_dir, sub_dir)
        if not os.path.exists(object_dir):
            continue
        lst = utils.load_objects(base_dir, sub_dir)
        import_method = getattr(utils, "import_" + sub_dir)
        import_method(lst, context)
Exemplo n.º 11
0
    def test_import_contact_items(self):
        contact_lst = utils.load_objects(os.path.join(TEST_DIR, 'contact-items'), '.')
        utils.import_contacts(contact_lst)

        contact = Contact.objects.get(external_id="incwo:12")
        self.assertEquals(contact.email, '*****@*****.**')
        self.assertEquals(contact.phone, '01 23 45 67 89')
        self.assertEquals(contact.mobile_phone, '06 78 90 12 34')
        self.assertEquals(contact.fax, '01 23 45 67 01')
Exemplo n.º 12
0
    def test_import_contact_items(self):
        contact_lst = utils.load_objects(os.path.join(TEST_DIR, "contact-items"), ".")
        utils.import_contacts(contact_lst)

        contact = Contact.objects.get(external_id="incwo:12")
        self.assertEquals(contact.email, "*****@*****.**")
        self.assertEquals(contact.phone, "01 23 45 67 89")
        self.assertEquals(contact.mobile_phone, "06 78 90 12 34")
        self.assertEquals(contact.fax, "01 23 45 67 01")
Exemplo n.º 13
0
    def handle_import(self, download_dir, sub_dirs, options):
        subsidiary_id = options['subsidiary']
        if subsidiary_id is None:
            raise CommandError('The --subsidiary option is missing')
        subsidiary = Subsidiary.objects.get(id=subsidiary_id)

        #TODO: use clientid to compose "id_prefix" to ensure its uniqueness among different incwo instances
        context = utils.ImportContext(ignore_errors=options['ignore_errors'],
                                      subsidiary=subsidiary,
                                      import_missions=options['missions'],
                                      id_prefix="incwo")

        for sub_dir in sub_dirs:
            name = 'allow_' + sub_dir
            if options[name]:
                context.allowed_ids_for_sub_dir[sub_dir] = read_ids(options[name])
            name = 'deny_' + sub_dir
            if options[name]:
                context.denied_ids_for_sub_dir[sub_dir] = read_ids(options[name])
            lst = utils.load_objects(download_dir, sub_dir)
            import_method = getattr(utils, 'import_' + sub_dir)
            import_method(lst, context)
Exemplo n.º 14
0
    def handle_import(self, download_dir, sub_dirs, options):
        subsidiary_id = options['subsidiary']
        if subsidiary_id is None:
            raise CommandError('The --subsidiary option is missing')
        subsidiary = Subsidiary.objects.get(id=subsidiary_id)

        #TODO: use clientid to compose "id_prefix" to ensure its uniqueness among different incwo instances
        context = utils.ImportContext(ignore_errors=options['ignore_errors'],
                                      subsidiary=subsidiary,
                                      import_missions=options['missions'],
                                      id_prefix="incwo")

        for sub_dir in sub_dirs:
            name = 'allow_' + sub_dir
            if options[name]:
                context.allowed_ids_for_sub_dir[sub_dir] = read_ids(
                    options[name])
            name = 'deny_' + sub_dir
            if options[name]:
                context.denied_ids_for_sub_dir[sub_dir] = read_ids(
                    options[name])
            lst = utils.load_objects(download_dir, sub_dir)
            import_method = getattr(utils, 'import_' + sub_dir)
            import_method(lst, context)
Exemplo n.º 15
0
 def test_duplicate_firms(self):
     lst = utils.load_objects(os.path.join(TEST_DIR, 'duplicate-firms'), '.')
     nb_objects = len(lst)
     utils.import_firms(lst)
     self.assertEquals(len(Company.objects.all()), nb_objects)
Exemplo n.º 16
0
 def test_duplicate_firms(self):
     lst = utils.load_objects(os.path.join(TEST_DIR, "duplicate-firms"), ".")
     nb_objects = len(lst)
     utils.import_firms(lst)
     self.assertEquals(len(Company.objects.all()), nb_objects)