Ejemplo n.º 1
0
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)