emmental/curds/test_data.py

64 lines
2.3 KiB
Python

# Copyright 2019 (c) Anna Schumaker.
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))
def test_data_file_path(self):
path = os.path.join(testing_data, "test")
self.assertEqual(data.data_file_path("test"), path)
self.assertFalse(os.path.exists(path))
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.assertFalse(os.path.exists(testing_file))
self.assertEqual(f.mode, data.READ)
self.assertIsNone(f.file)
f = data.DataFile("test.file", data.WRITE)
self.assertFalse(os.path.exists(testing_file))
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())
with data.DataFile("test.file", data.WRITE) as f:
self.assertIsNotNone(f.file)
self.assertEqual(f.file.name, testing_temp)
self.assertFalse(os.path.exists(testing_file))
self.assertTrue(os.path.exists(testing_temp))
f.pickle(test)
self.assertIsNone(f.file)
self.assertFalse(os.path.exists(testing_temp))
self.assertTrue(os.path.exists(testing_file))
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)