class TestFileStore(unittest.TestCase, SimpleUrlKVTest): def setUp(self): self.tmpdir = tempfile.mkdtemp() self.store = FilesystemStore(self.tmpdir) def tearDown(self): shutil.rmtree(self.tmpdir) @unittest.skipUnless(os.name == 'posix', 'Not supported outside posix.') def test_correct_file_uri(self): expected = 'file://' + self.tmpdir + '/somekey' self.assertEqual(expected, self.store.url_for('somekey')) def test_file_uri(self): data = 'Hello, World?!\n' tmpfile = tempfile.NamedTemporaryFile(delete=False) try: tmpfile.write(data) tmpfile.close() key = self.store.put_file('testkey', tmpfile.name) url = self.store.url_for(key) self.assertTrue(url.startswith('file://')) parts = urlparse(url) ndata = open(parts.path, 'rb').read() self.assertEqual(ndata, data) finally: if os.path.exists(tmpfile.name): os.unlink(tmpfile.name)