about summary refs log tree commit diff stats
path: root/test/tc_directory.py
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2009-11-24 00:41:16 +0100
committerhut <hut@lavabit.com>2009-11-24 00:41:16 +0100
commitfae694a03ebb52888a747010fcb92fa43b33b4a8 (patch)
treeccd0d4e8d6a759eb8086d6a7da80316787b868ea /test/tc_directory.py
parent6ca37350f8e6bffe78520fddfc29ca53fa562e87 (diff)
downloadranger-fae694a03ebb52888a747010fcb92fa43b33b4a8.tar.gz
better implementation of directories/files
Diffstat (limited to 'test/tc_directory.py')
-rw-r--r--test/tc_directory.py74
1 files changed, 49 insertions, 25 deletions
diff --git a/test/tc_directory.py b/test/tc_directory.py
index b0a4b780..69717ba2 100644
--- a/test/tc_directory.py
+++ b/test/tc_directory.py
@@ -1,9 +1,10 @@
 import unittest
 import sys, os
 sys.path.append('../code')
-import directory
+import directory, fsobject, file
 
 TESTDIR = os.path.realpath(os.path.join(os.path.dirname(sys.argv[0]), 'testdir'))
+TESTFILE = os.path.join(TESTDIR, 'testfile5234148')
 NONEXISTANT_DIR = '/this/directory/will/most/certainly/not/exist'
 
 class Test1(unittest.TestCase):
@@ -12,42 +13,54 @@ class Test1(unittest.TestCase):
 		dir = directory.Directory(TESTDIR)
 
 		self.assertEqual(dir.path, TESTDIR)
-		self.assertFalse(dir.files_loaded)
+		self.assertFalse(dir.content_loaded)
+		self.assertEqual(dir.filenames, None)
 		self.assertEqual(dir.files, None)
-		self.assertRaises(directory.NotLoadedYet, len, dir)
-		self.assertRaises(directory.NotLoadedYet, dir.__getitem__, 0)
+		self.assertRaises(fsobject.NotLoadedYet, len, dir)
+		self.assertRaises(fsobject.NotLoadedYet, dir.__getitem__, 0)
 
-	def testAfterFilesLoaded(self):
-		# Check whether the directory has the correct list of files.
+	def testAfterContentLoaded(self):
+		# Check whether the directory has the correct list of filenames.
 		dir = directory.Directory(TESTDIR)
-		dir.load_files()
+		dir.load_content()
 
 		self.assertTrue(dir.exists)
-		self.assertEqual(type(dir.files), list)
+		self.assertEqual(type(dir.filenames), list)
 
-		# Get the files you expect it to have and sort both before
-		# comparing. I don't expect any order after only loading the files.
-		assumed_files = os.listdir(TESTDIR)
-		assumed_files.sort()
-		dir.files.sort()
+		# Get the filenames you expect it to have and sort both before
+		# comparing. I don't expect any order after only loading the filenames.
+		assumed_filenames = os.listdir(TESTDIR)
+		assumed_filenames.sort()
+		dir.filenames.sort()
 
 		self.assertTrue(len(dir) > 0)
-		self.assertEqual(dir.files, assumed_files)
+		self.assertEqual(dir.filenames, assumed_filenames)
+
+		# build a file object for each file in the list assumed_filenames
+		# and find exactly one equivalent in dir.files
+		for name in assumed_filenames:
+			f = file.File(name)
+			f.load()
+			equal = 0
+			for dirfile in dir.files:
+				if (f.__dict__ == dirfile.__dict__):
+					equal += 1
+			self.assertEqual(equal, 1)
 
 	def testNonexistantDir(self):
 		dir = directory.Directory(NONEXISTANT_DIR)
-		dir.load_files()
+		dir.load_content()
 		
-		self.assertTrue(dir.files_loaded)
+		self.assertTrue(dir.content_loaded)
 		self.assertFalse(dir.exists)
 		self.assertFalse(dir.accessible)
-		self.assertEqual(dir.files, None)
-		self.assertRaises(directory.NotLoadedYet, len, dir)
-		self.assertRaises(directory.NotLoadedYet, dir.__getitem__, 0)
+		self.assertEqual(dir.filenames, None)
+		self.assertRaises(fsobject.NotLoadedYet, len, dir)
+		self.assertRaises(fsobject.NotLoadedYet, dir.__getitem__, 0)
 
 	def testModifyFrozenClone(self):
 		dir = directory.Directory(TESTDIR)
-		clone = dir.frozenClone()
+		clone = dir.frozen_clone()
 
 		# assert that their attributes are equal, except for frozen, which
 		# should be true for the clone.
@@ -56,12 +69,23 @@ class Test1(unittest.TestCase):
 		self.assertEqual(dir.__dict__, clone.__dict__)
 		clone.frozen = True
 
-		# check for inequality after loading files with one object
-		self.assertEqual(dir.files, clone.files)
-		dir.load_files()
-		self.assertNotEqual(dir.files, clone.files)
+		# check for inequality after loading filenames with one object
+		self.assertEqual(dir.filenames, clone.filenames)
+		dir.load_content()
+		self.assertNotEqual(dir.filenames, clone.filenames)
+
+		self.assertRaises(fsobject.FrozenException, clone.load_content)
+
+	def test_load_if_outdated(self):
+		if os.path.exists(TESTFILE): os.unlink(TESTFILE)
+		dir = directory.Directory(TESTDIR)
+		dir.load()
+
+		open(TESTFILE, 'w').close()
+
+		self.assertTrue(dir.load_if_outdated())
 
-		self.assertRaises(directory.FrozenException, clone.load_files)
+		os.unlink(TESTFILE)
 
 unittest.main()