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_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_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)
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)
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)
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)
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)
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)
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)
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)
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')
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")
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)
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)
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)
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)