81 lines
2.9 KiB
Python
81 lines
2.9 KiB
Python
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# MIT License. See license.txt
|
|
from __future__ import unicode_literals
|
|
|
|
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
|