Package translate :: Package storage :: Module test_directory
[hide private]
[frames] | no frames]

Source Code for Module translate.storage.test_directory

 1  #!/usr/bin/env python 
 2   
 3  """Tests for the directory module""" 
 4   
 5  from translate.storage import directory 
 6  import os 
 7   
8 -class TestDirectory(object):
9 """a test class to run tests on a test Pootle Server""" 10
11 - def setup_method(self, method):
12 """sets up a test directory""" 13 print "setup_method called on", self.__class__.__name__ 14 self.testdir = "%s_testdir" % (self.__class__.__name__) 15 self.cleardir(self.testdir) 16 os.mkdir(self.testdir)
17
18 - def teardown_method(self, method):
19 """removes the attributes set up by setup_method""" 20 self.cleardir(self.testdir)
21
22 - def cleardir(self, dirname):
23 """removes the given directory""" 24 if os.path.exists(dirname): 25 for dirpath, subdirs, filenames in os.walk(dirname, topdown=False): 26 for name in filenames: 27 os.remove(os.path.join(dirpath, name)) 28 for name in subdirs: 29 os.rmdir(os.path.join(dirpath, name)) 30 if os.path.exists(dirname): os.rmdir(dirname) 31 assert not os.path.exists(dirname)
32
33 - def touchfiles(self, dir, filenames, content=None):
34 for filename in filenames: 35 f = open(os.path.join(dir, filename), "w") 36 if content: 37 f.write(content) 38 f.close()
39
40 - def mkdir(self, dir):
41 """Makes a directory inside self.testdir.""" 42 os.mkdir(os.path.join(self.testdir, dir))
43
44 - def test_created(self):
45 """test that the directory actually exists""" 46 print self.testdir 47 assert os.path.isdir(self.testdir)
48
49 - def test_basic(self):
50 """Tests basic functionality.""" 51 files = ["a.po", "b.po", "c.po"] 52 self.touchfiles(self.testdir, files) 53 54 d = directory.Directory(self.testdir) 55 filenames = [name for dir, name in d.getfiles()] 56 assert filenames == files
57
58 - def test_structure(self):
59 """Tests a small directory structure.""" 60 files = ["a.po", "b.po", "c.po"] 61 self.touchfiles(self.testdir, files) 62 self.mkdir("bla") 63 self.touchfiles(os.path.join(self.testdir, "bla"), files) 64 65 d = directory.Directory(self.testdir) 66 filenames = [name for dir, name in d.getfiles()] 67 assert filenames == files*2
68
69 - def test_getunits(self):
70 """Tests basic functionality.""" 71 files = ["a.po", "b.po", "c.po"] 72 posource = '''msgid "bla"\nmsgstr "blabla"\n''' 73 self.touchfiles(self.testdir, files, posource) 74 75 d = directory.Directory(self.testdir) 76 for unit in d.getunits(): 77 assert unit.target == "blabla" 78 assert len(d.getunits()) == 3
79