add read methods to text and json files
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
__author__ = 'stubbfel'
|
||||
import json
|
||||
from utilities.textfileutility import TextFile
|
||||
from utilities.textfile import TextFile
|
||||
|
||||
|
||||
class JsonFile(TextFile):
|
||||
@@ -12,7 +12,7 @@ class JsonFile(TextFile):
|
||||
"""
|
||||
super(JsonFile, self).__init__(filename)
|
||||
|
||||
def write_json(self, json_object):
|
||||
def write_json_file(self, json_object):
|
||||
"""
|
||||
write a json object to a text file
|
||||
:param json_object: json object, which has to be saved. If the object is a string,
|
||||
@@ -27,4 +27,10 @@ class JsonFile(TextFile):
|
||||
json_string = json.dumps(json_object, indent=4)
|
||||
self.write_text_file(json_string)
|
||||
|
||||
def read_json_file(self):
|
||||
"""
|
||||
method read and convert the content of the file to a json object
|
||||
:return: dict - json object
|
||||
"""
|
||||
return json.loads(self.read_text_file())
|
||||
|
||||
@@ -30,6 +30,15 @@ class TextFile:
|
||||
if self.exists_file:
|
||||
os.remove(self._filename)
|
||||
|
||||
def read_text_file(self):
|
||||
"""
|
||||
method return and read the content of a text file
|
||||
|
||||
:return: str - file content
|
||||
"""
|
||||
with open(self._filename, newline='\n') as file:
|
||||
return file.read()
|
||||
|
||||
@property
|
||||
def exists_file(self):
|
||||
"""
|
||||
@@ -1,7 +1,8 @@
|
||||
__author__ = 'stubbfel'
|
||||
|
||||
import unittest
|
||||
from utilities.jsonutility import JsonFile
|
||||
from utilities.jsonfile import JsonFile
|
||||
from utilities.textfile import TextFile
|
||||
import os.path
|
||||
|
||||
|
||||
@@ -10,18 +11,44 @@ class JsonUtilitiesTest(unittest.TestCase):
|
||||
self.__jf = JsonFile("test.json")
|
||||
self.__jf.check_and_remove_file()
|
||||
|
||||
def test_write_json(self):
|
||||
self.__jf.write_json({1: "4711", "123": "0815"})
|
||||
def tearDown(self):
|
||||
self.__jf.check_and_remove_file()
|
||||
|
||||
def test_read_json_file(self):
|
||||
self.__jf.write_json_file({1: "4711", "123": "0815"})
|
||||
jo = self.__jf.read_json_file()
|
||||
self.assertEqual(jo["1"], "4711")
|
||||
self.assertEqual(jo["123"], "0815")
|
||||
|
||||
def test_read_json_file_from_string(self):
|
||||
self.__jf.write_json_file("{\"1\": \"4711\", \"123\": \"0815\"}")
|
||||
jo = self.__jf.read_json_file()
|
||||
self.assertEqual(jo["1"], "4711")
|
||||
self.assertEqual(jo["123"], "0815")
|
||||
|
||||
def test_read_json_file_returns_error_if_json_object_is_emptystring(self):
|
||||
tf = TextFile("test.json")
|
||||
tf.write_text_file("")
|
||||
self.assertRaises(ValueError, self.__jf.read_json_file)
|
||||
|
||||
def test_read_json_file_returns_error_if_json_object_is_wrong_json_string(self):
|
||||
tf = TextFile("test.json")
|
||||
tf.write_text_file("{1}")
|
||||
self.assertRaises(ValueError, self.__jf.read_json_file)
|
||||
|
||||
def test_write_json_file(self):
|
||||
self.__jf.write_json_file({1: "4711", "123": "0815"})
|
||||
self.assertTrue(os.path.isfile("test.json"))
|
||||
self.__jf.check_and_remove_file()
|
||||
|
||||
def test_write_json_returns_error_if_json_object_is_emptystring(self):
|
||||
self.assertRaises(ValueError, self.__jf.write_json, "")
|
||||
self.__jf.check_and_remove_file()
|
||||
def test_write_json_file(self):
|
||||
self.__jf.write_json_file("{\"1\": \"4711\", \"123\": \"0815\"}")
|
||||
self.assertTrue(os.path.isfile("test.json"))
|
||||
|
||||
def test_write_json_returns_error_if_json_object_is_wrong_json_string(self):
|
||||
self.assertRaises(ValueError, self.__jf.write_json, "{1}")
|
||||
self.__jf.check_and_remove_file()
|
||||
def test_write_json_file_returns_error_if_json_object_is_emptystring(self):
|
||||
self.assertRaises(ValueError, self.__jf.write_json_file, "")
|
||||
|
||||
def test_write_json_file_returns_error_if_json_object_is_wrong_json_string(self):
|
||||
self.assertRaises(ValueError, self.__jf.write_json_file, "{1}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
__author__ = 'stubbfel'
|
||||
|
||||
import unittest
|
||||
from utilities.textfileutility import TextFile
|
||||
from utilities.textfile import TextFile
|
||||
import os.path
|
||||
|
||||
|
||||
@@ -10,16 +10,25 @@ class TextFileUtilitiesTest(unittest.TestCase):
|
||||
self.__tf = TextFile("test.txt")
|
||||
self.__tf.check_and_remove_file()
|
||||
|
||||
def test_write_file(self):
|
||||
self.__tf.write_text_file("this is a test")
|
||||
def tearDown(self):
|
||||
self.__tf.check_and_remove_file()
|
||||
|
||||
def test_write_text_file(self):
|
||||
self.__tf.write_text_file("this is a test")
|
||||
self.assertTrue(self.__tf.exists_file)
|
||||
self.assertEqual(self.__tf.read_text_file(), "this is a test")
|
||||
|
||||
def test_read_text_file(self):
|
||||
self.__tf.write_text_file("this is a test")
|
||||
self.assertEqual(self.__tf.read_text_file(), "this is a test")
|
||||
|
||||
def test_read_text_file_non_existing_file(self):
|
||||
self.assertRaises(FileNotFoundError, self.__tf.read_text_file)
|
||||
|
||||
def test_exists_file_true_case(self):
|
||||
self.assertEqual(os.path.isfile("test.txt"), self.__tf.exists_file)
|
||||
self.__tf.check_and_remove_file()
|
||||
|
||||
def test_exists_file_false_case(self):
|
||||
self.__tf.check_and_remove_file()
|
||||
self.assertEqual(os.path.isfile("test.txt"), self.__tf.exists_file)
|
||||
|
||||
def test_check_and_remove_file(self):
|
||||
|
||||
Reference in New Issue
Block a user