2020-06-21 19:27:40 +00:00
|
|
|
import logging
|
|
|
|
import os
|
|
|
|
import unittest
|
|
|
|
from datetime import datetime as DT
|
|
|
|
|
2020-06-21 22:40:47 +00:00
|
|
|
from org_dom import dumps, load, loads
|
2020-06-21 19:27:40 +00:00
|
|
|
from utils.dom_assertions import HL, Dom
|
|
|
|
|
|
|
|
DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
|
|
|
|
|
|
class TestSerde(unittest.TestCase):
|
|
|
|
def test_simple_file_01(self):
|
|
|
|
with open(os.path.join(DIR, '01-simple.org')) as f:
|
|
|
|
doc = load(f)
|
|
|
|
|
|
|
|
ex = Dom(props=[('TITLE', '01-Simple'),
|
|
|
|
('DESCRIPTION', 'Simple org file'),
|
|
|
|
('TODO', 'TODO(t) PAUSED(p) | DONE(d)')],
|
|
|
|
children=(HL(
|
|
|
|
'First level',
|
|
|
|
props=[
|
|
|
|
('ID', '01-simple-first-level-id'),
|
|
|
|
('CREATED', DT(2020, 1, 1, 1, 1)),
|
|
|
|
],
|
|
|
|
content='First level content',
|
|
|
|
children=[
|
|
|
|
HL('Second level',
|
|
|
|
props=[('ID', '01-simple-second-level-id')],
|
|
|
|
content='Second level content',
|
|
|
|
children=[
|
|
|
|
HL('Third level',
|
|
|
|
props=[('ID', '01-simple-third-level-id')],
|
|
|
|
content='Third level content')
|
|
|
|
])
|
|
|
|
])))
|
|
|
|
|
|
|
|
ex.assert_matches(self, doc)
|
2020-06-21 22:40:47 +00:00
|
|
|
|
|
|
|
def test_mimic_write_file_01(self):
|
|
|
|
"""A goal of this library is to be able to update a file without changing parts not directly modified."""
|
|
|
|
with open(os.path.join(DIR, '01-simple.org')) as f:
|
|
|
|
orig = f.read()
|
|
|
|
doc = loads(orig)
|
|
|
|
|
|
|
|
self.assertEqual(dumps(doc), orig)
|