new_contents: # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
  # MIT License. See license.txt
  
  import frappe
  import os
  import unittest
  
  from frappe.utils.file_manager import save_file, get_file, get_files_path
  
  test_content1 = 'Hello'
  test_content2 = 'Hello World'
  
  def make_test_doc():
  	d = frappe.new_doc('ToDo')
  	d.description = 'Test'
  	d.save()
  	return d.doctype, d.name
  
  class TestSimpleFile(unittest.TestCase):
  
  	def setUp(self):
  		self.attached_to_doctype, self.attached_to_docname = make_test_doc()
  		self.test_content = test_content1
  		self.saved_file = save_file('hello.txt', self.test_content, self.attached_to_doctype, self.attached_to_docname)
  		self.saved_filename = get_files_path(self.saved_file.file_name)
  		
  	def test_save(self):
  		filename, content = get_file(self.saved_file.name)
  		self.assertEqual(content, self.test_content)
  
  	def tearDown(self):
  		# File gets deleted on rollback, so blank
  		pass
  
  
  class TestSameFileName(unittest.TestCase):
  
  	def setUp(self):
  		self.attached_to_doctype, self.attached_to_docname = make_test_doc()
  		self.test_content1 = test_content1
  		self.test_content2 = test_content2
  		self.saved_file1 = save_file('hello.txt', self.test_content1, self.attached_to_doctype, self.attached_to_docname)
  		self.saved_file2 = save_file('hello.txt', self.test_content2, self.attached_to_doctype, self.attached_to_docname)
  		self.saved_filename1 = get_files_path(self.saved_file1.file_name)
  		self.saved_filename2 = get_files_path(self.saved_file2.file_name)
  	
  	def test_saved_content(self):
  		filename1, content1 = get_file(self.saved_file1.name)
  		self.assertEqual(content1, self.test_content1)
  		filename2, content2 = get_file(self.saved_file2.name)
  		self.assertEqual(content2, self.test_content2)
  
  	def tearDown(self):
  		# File gets deleted on rollback, so blank
  		pass
  
  
  class TestSameContent(unittest.TestCase):
  
  	def setUp(self):
  		self.attached_to_doctype1, self.attached_to_docname1 = make_test_doc()
  		self.attached_to_doctype2, self.attached_to_docname2 = make_test_doc()
  		self.test_content1 = test_content1
  		self.test_content2 = test_content1
  		self.orig_filename = 'hello.txt'
  		self.dup_filename = 'hello2.txt'
  		self.saved_file1 = save_file(self.orig_filename, self.test_content1, self.attached_to_doctype1, self.attached_to_docname1)
  		self.saved_file2 = save_file(self.dup_filename, self.test_content2, self.attached_to_doctype2, self.attached_to_docname2)
  		self.saved_filename1 = get_files_path(self.saved_file1.file_name)
  		self.saved_filename2 = get_files_path(self.saved_file2.file_name)
  	
  	def test_saved_content(self):
  		filename1, content1 = get_file(self.saved_file1.name)
  		filename2, content2 = get_file(self.saved_file2.name)
  		self.assertEqual(filename1, filename2)
  		self.assertFalse(os.path.exists(get_files_path(self.dup_filename)))
  
  	def tearDown(self):
  		# File gets deleted on rollback, so blank
  		pass
  
subject: add filemanager tests