Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/translate-toolkit-1.5.1/translate/storage/test_zip.py
diff options
context:
space:
mode:
Diffstat (limited to 'translate-toolkit-1.5.1/translate/storage/test_zip.py')
-rw-r--r--translate-toolkit-1.5.1/translate/storage/test_zip.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/translate-toolkit-1.5.1/translate/storage/test_zip.py b/translate-toolkit-1.5.1/translate/storage/test_zip.py
new file mode 100644
index 0000000..815d979
--- /dev/null
+++ b/translate-toolkit-1.5.1/translate/storage/test_zip.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+
+"""Tests for the zip storage module"""
+
+from translate.storage import directory
+from translate.storage import zip
+import os
+from zipfile import ZipFile
+
+class TestZIPFile(object):
+ """A test class to test the zip class that provides the directory interface."""
+
+ def setup_method(self, method):
+ """sets up a test directory"""
+ print "setup_method called on", self.__class__.__name__
+ self.testzip = "%s_testzip.zip" % (self.__class__.__name__)
+ self.cleardir(self.testzip)
+ self.zip = ZipFile(self.testzip, mode="w")
+
+ def teardown_method(self, method):
+ """removes the attributes set up by setup_method"""
+ self.cleardir(self.testzip)
+
+ def cleardir(self, dirname):
+ """removes the given directory"""
+ if os.path.exists(self.testzip):
+ os.remove(self.testzip)
+ assert not os.path.exists(self.testzip)
+
+ def touchfiles(self, dir, filenames, content="", last=False):
+ for filename in filenames:
+ if dir:
+ self.zip.writestr(os.path.join(dir, filename), content)
+ else:
+ self.zip.writestr(filename, content)
+ if last:
+ self.zip.close()
+
+ def mkdir(self, dir):
+ """Makes a directory inside self.testzip."""
+ pass
+
+ def test_created(self):
+ """test that the directory actually exists"""
+ print self.testzip
+ assert os.path.isfile(self.testzip)
+
+ def test_basic(self):
+ """Tests basic functionality."""
+ files = ["a.po", "b.po", "c.po"]
+ self.touchfiles(None, files, last=True)
+
+ d = zip.ZIPFile(self.testzip)
+ filenames = [name for dir, name in d.getfiles()]
+ assert filenames == files
+
+ def test_structure(self):
+ """Tests a small directory structure."""
+ files = ["a.po", "b.po", "c.po"]
+ self.touchfiles(self.testzip, files)
+ self.mkdir("bla")
+ self.touchfiles(os.path.join(self.testzip, "bla"), files, last=True)
+
+ d = zip.ZIPFile(self.testzip)
+ filenames = [name for dir, name in d.getfiles()]
+ assert filenames == files*2
+
+ def test_getunits(self):
+ """Tests basic functionality."""
+ files = ["a.po", "b.po", "c.po"]
+ posource = '''msgid "bla"\nmsgstr "blabla"\n'''
+ self.touchfiles(self.testzip, files, posource, last=True)
+
+ d = zip.ZIPFile(self.testzip)
+ for unit in d.getunits():
+ assert unit.target == "blabla"
+ assert len(d.getunits()) == 3