Beispiel #1
0
	def test_import_only_children(self):
		user_email = "*****@*****.**"
		if frappe.db.exists("User", user_email):
			frappe.delete_doc("User", user_email)

		frappe.get_doc({"doctype": "User", "email": user_email, "first_name": "Test Import UserRole"}).insert()

		exporter.get_template("UserRole", "User", all_doctypes="No", with_data="No")
		content = read_csv_content(frappe.response.result)
		content.append(["", "*****@*****.**", "Blogger"])
		importer.upload(content)

		user = frappe.get_doc("User", user_email)
		self.assertEquals(len(user.get("user_roles")), 1)
		self.assertTrue(user.get("user_roles")[0].role, "Blogger")

		# overwrite
		exporter.get_template("UserRole", "User", all_doctypes="No", with_data="No")
		content = read_csv_content(frappe.response.result)
		content.append(["", "*****@*****.**", "Website Manager"])
		importer.upload(content, overwrite=True)

		user = frappe.get_doc("User", user_email)
		self.assertEquals(len(user.get("user_roles")), 1)
		self.assertTrue(user.get("user_roles")[0].role, "Website Manager")
Beispiel #2
0
    def test_import(self):
        if frappe.db.exists("Blog Category", "test-category"):
            frappe.delete_doc("Blog Category", "test-category")

        exporter.get_template("Blog Category",
                              all_doctypes="No",
                              with_data="No")
        content = read_csv_content(frappe.response.result)
        content.append(["", "", "test-category", "Test Cateogry"])
        importer.upload(content)
        self.assertTrue(
            frappe.db.get_value("Blog Category", "test-category", "title"),
            "Test Category")

        # export with data
        exporter.get_template("Blog Category",
                              all_doctypes="No",
                              with_data="Yes")
        content = read_csv_content(frappe.response.result)

        # overwrite
        content[-1][3] = "New Title"
        importer.upload(content, overwrite=True)
        self.assertTrue(
            frappe.db.get_value("Blog Category", "test-category", "title"),
            "New Title")
Beispiel #3
0
def import_file_by_path(path, ignore_links=False, overwrite=False):
    from frappe.utils.datautils import read_csv_content
    print "Importing " + path
    with open(path, "r") as infile:
        upload(rows=read_csv_content(infile),
               ignore_links=ignore_links,
               overwrite=overwrite)
Beispiel #4
0
	def test_export_with_all_doctypes(self):
		exporter.get_template("User", all_doctypes="Yes", with_data="Yes")
		content = read_csv_content(frappe.response.result)
		self.assertTrue(content[1][1], "User")
		self.assertTrue('"Administrator"' in [c[1] for c in content if len(c)>1])
		self.assertEquals(content[13][0], "DocType:")
		self.assertEquals(content[13][1], "User")
		self.assertTrue("UserRole" in content[13])
Beispiel #5
0
	def test_export_with_all_doctypes(self):
		exporter.get_template("User", all_doctypes="Yes", with_data="Yes")
		content = read_csv_content(frappe.response.result)
		self.assertTrue(content[1][1], "User")
		self.assertTrue('"Administrator"' in [c[1] for c in content if len(c)>1])
		self.assertEquals(content[13][0], "DocType:")
		self.assertEquals(content[13][1], "User")
		self.assertTrue("UserRole" in content[13])
Beispiel #6
0
	def test_import(self):
		if frappe.db.exists("Blog Category", "test-category"):
			frappe.delete_doc("Blog Category", "test-category")

		exporter.get_template("Blog Category", all_doctypes="No", with_data="No")
		content = read_csv_content(frappe.response.result)
		content.append(["", "", "test-category", "Test Cateogry"])
		importer.upload(content)
		self.assertTrue(frappe.db.get_value("Blog Category", "test-category", "title"), "Test Category")

		# export with data
		exporter.get_template("Blog Category", all_doctypes="No", with_data="Yes")
		content = read_csv_content(frappe.response.result)

		# overwrite
		content[-1][3] = "New Title"
		importer.upload(content, overwrite=True)
		self.assertTrue(frappe.db.get_value("Blog Category", "test-category", "title"), "New Title")
Beispiel #7
0
	def test_import_with_children(self):
		exporter.get_template("Event", all_doctypes="Yes", with_data="No")
		content = read_csv_content(frappe.response.result)
		content.append([None] * len(content[-2]))
		content[-1][2] = "__Test Event"
		content[-1][3] = "Private"
		content[-1][4] = "2014-01-01 10:00:00.000000"
		content[-1][content[15].index("person")] = "Administrator"
		importer.upload(content)

		ev = frappe.get_doc("Event", {"subject":"__Test Event"})
		self.assertTrue("Administrator" in [d.person for d in ev.event_individuals])
Beispiel #8
0
	def test_import_with_children(self):
		exporter.get_template("Event", all_doctypes="Yes", with_data="No")
		content = read_csv_content(frappe.response.result)
		content.append([""] * len(content[-2]))
		content[-1][2] = "__Test Event"
		content[-1][3] = "Private"
		content[-1][3] = "2014-01-01 10:00:00.000000"
		content[-1][content[15].index("person")] = "Administrator"
		importer.upload(content)

		ev = frappe.get_doc("Event", {"subject":"__Test Event"})
		self.assertTrue("Administrator" in [d.person for d in ev.event_individuals])
def get_csv_contents(files_path):
	csv_content = {}
	for filepath in files_path:
		fname = os.path.basename(filepath)
		for file_type in ["account.account.template", "account.account.type", 
				"account.chart.template"]:
			if fname.startswith(file_type) and fname.endswith(".csv"):
				with open(filepath, "r") as csvfile:
					try:
						csv_content.setdefault(file_type, [])\
							.append(read_csv_content(csvfile.read()))
					except Exception, e:
						continue
Beispiel #10
0
def find_charts():
	print "finding charts..."
	for basepath, folders, files in os.walk(path):
		basename = os.path.basename(basepath)
		if basename.startswith("l10n"):
			for fname in files:
				fname = cstr(fname)
				filepath = os.path.join(basepath, fname)
				if fname.endswith(".xml"):
					tree = ET.parse(filepath)
					root = tree.getroot()
					for node in root[0].findall("record"):
						if node.get("model") in ["account.account.template", 
							"account.chart.template", "account.account.type"]:
							chart_roots.append(root)
							root.set("folder", basename)
							break
				
				if fname.endswith(".csv"):
					with open(filepath, "r") as csvfile:
						try:
							content = read_csv_content(csvfile.read())
						except Exception, e:
							continue
					
					if content[0][0]=="id":
						for row in content[1:]:
							data = dict(zip(content[0], row))
							account = {
								"name": data.get("name"),
								"parent_id": data.get("parent_id:id"),
								"children": []
							}
							accounts[data.get("id")] = account
							if not account.get("parent_id"):
								chart_id = data.get("chart_id:id")
								charts.setdefault(chart_id, {}).update({
									"account_root_id": data.get("id")})
Beispiel #11
0
def import_file_by_path(path, ignore_links=False, overwrite=False, submit=False):
	from frappe.utils.datautils import read_csv_content
	from frappe.core.page.data_import_tool.importer import upload
	print "Importing " + path
	with open(path, "r") as infile:
		upload(rows = read_csv_content(infile.read()), ignore_links=ignore_links, overwrite=overwrite, submit_after_import=submit)
Beispiel #12
0
	def test_export(self):
		exporter.get_template("User", all_doctypes="No", with_data="No")
		content = read_csv_content(frappe.response.result)
		self.assertTrue(content[1][1], "User")
Beispiel #13
0
	def test_export_with_data(self):
		exporter.get_template("User", all_doctypes="No", with_data="Yes")
		content = read_csv_content(frappe.response.result)
		self.assertTrue(content[1][1], "User")
		self.assertTrue("Administrator" in [c[1] for c in content if len(c)>1])
Beispiel #14
0
	def test_export(self):
		exporter.get_template("User", all_doctypes="No", with_data="No")
		content = read_csv_content(frappe.response.result)
		self.assertTrue(content[1][1], "User")
Beispiel #15
0
	def test_export_with_data(self):
		exporter.get_template("User", all_doctypes="No", with_data="Yes")
		content = read_csv_content(frappe.response.result)
		self.assertTrue(content[1][1], "User")
		self.assertTrue("Administrator" in [c[1] for c in content if len(c)>1])