72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
# Copyright 2019 (c) Anna Schumaker.
|
|
from . import data
|
|
import os
|
|
import unittest
|
|
import xdg.BaseDirectory
|
|
|
|
xdg_data_home = xdg.BaseDirectory.xdg_data_home
|
|
testing_data = os.path.join(xdg_data_home, "emmental-testing")
|
|
testing_file = os.path.join(testing_data, "test.file")
|
|
testing_temp = os.path.join(testing_data, ".test.file.tmp")
|
|
|
|
class TestDataModule(unittest.TestCase):
|
|
def setUp(self):
|
|
if os.path.exists(testing_file):
|
|
os.remove(testing_file)
|
|
|
|
def test_dir(self):
|
|
self.assertEqual(data.emmental_data, testing_data)
|
|
self.assertTrue(os.path.exists(testing_data))
|
|
self.assertTrue(os.path.isdir(testing_data))
|
|
self.assertEqual(data.READ, 'rb')
|
|
self.assertEqual(data.WRITE, 'wb')
|
|
|
|
def test_data_file_init(self):
|
|
f = data.DataFile("test.file", data.READ)
|
|
self.assertEqual(f.path, testing_file)
|
|
self.assertEqual(f.temp, testing_temp)
|
|
self.assertFalse(f.exists())
|
|
self.assertEqual(f.mode, data.READ)
|
|
self.assertIsNone(f.file)
|
|
|
|
f = data.DataFile("test.file", data.WRITE)
|
|
self.assertEqual(f.temp, testing_temp)
|
|
self.assertFalse(f.exists())
|
|
self.assertEqual(f.mode, data.WRITE)
|
|
self.assertIsNone(f.file)
|
|
|
|
def test_data_file_read_write(self):
|
|
test = [ "test", "saving", "a", "list" ]
|
|
with data.DataFile("test.file", data.READ) as f:
|
|
self.assertIsNone(f.file)
|
|
f.pickle(test)
|
|
self.assertIsNone(f.unpickle())
|
|
self.assertFalse(f.remove())
|
|
self.assertTrue(f.exists())
|
|
|
|
with data.DataFile("test.file", data.WRITE) as f:
|
|
self.assertIsNotNone(f.file)
|
|
self.assertEqual(f.file.name, testing_temp)
|
|
self.assertFalse(f.exists())
|
|
self.assertTrue(os.path.exists(testing_temp))
|
|
f.pickle(test)
|
|
self.assertFalse(f.remove())
|
|
self.assertTrue(f.exists())
|
|
|
|
self.assertIsNone(f.file)
|
|
self.assertFalse(os.path.exists(testing_temp))
|
|
self.assertTrue(f.exists())
|
|
|
|
with data.DataFile("test.file", data.READ) as f:
|
|
self.assertIsNotNone(f.file)
|
|
self.assertEqual(f.file.name, testing_file)
|
|
lst = f.unpickle()
|
|
self.assertEqual(test, lst)
|
|
self.assertFalse(f.remove())
|
|
self.assertTrue(f.exists())
|
|
|
|
f = data.DataFile("test.file", data.READ)
|
|
self.assertTrue(f.remove())
|
|
self.assertFalse(f.exists())
|
|
self.assertFalse(f.remove())
|