diff --git a/python/sunbeam/tools/time_vector.py b/python/sunbeam/tools/time_vector.py index 0d770403a..1d710b614 100644 --- a/python/sunbeam/tools/time_vector.py +++ b/python/sunbeam/tools/time_vector.py @@ -256,17 +256,17 @@ class TimeVector(object): if start_date is None: if first_kw.name != "DATES": raise ValueError("When loading you must *either* specify date - or file must start with DATES keyword") + dt = _make_datetime(first_kw[len(first_kw) - 1]) else: if first_kw.name == "DATES": raise ValueError("When loading you must *either* specify date - or file must start with DATES keyword") + dt = start_date keywords = [] - dt = start_date for kw in deck: if kw.name == "DATES": - if keywords: - self.add_keywords(dt, keywords) + self.add_keywords(dt, keywords) for index in range(len(kw)-1): dt = _make_datetime(kw[index]) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2ab105e99..f3cfdba2b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,7 +6,7 @@ configure_file(data/schedule/part2.sch data/schedule/part2.sch COPYONLY) configure_file(data/schedule/part3.sch data/schedule/part3.sch COPYONLY) configure_file(data/schedule/fragment.sch data/schedule/fragment.sch COPYONLY) configure_file(data/schedule/fragment_dates.sch data/schedule/fragment_dates.sch COPYONLY) - +configure_file(data/schedule/TEMPLATE.SCH data/schedule/TEMPLATE.SCH COPYONLY) configure_file(utils.py utils.py COPYONLY) foreach(prog time_vector completions deck group_tree grupnet parse_deck parse state props schedule wells) diff --git a/tests/data/schedule/TEMPLATE.SCH b/tests/data/schedule/TEMPLATE.SCH new file mode 100644 index 000000000..3d198aa7d --- /dev/null +++ b/tests/data/schedule/TEMPLATE.SCH @@ -0,0 +1,22 @@ +RPTSCHED +RESTART=2 / + +WRFTPLT +'*' YES / +/ + +DATES +1 'JAN' 2000 / +/ + +RPTSCHED +RESTART=0 / + +DATES +1 'FEB' 2000 / +/ + + +DATES +1 'MAR' 2000 / +/ diff --git a/tests/time_vector.py b/tests/time_vector.py index b1eeb0b18..e4a8d1321 100644 --- a/tests/time_vector.py +++ b/tests/time_vector.py @@ -2,6 +2,7 @@ import unittest import datetime from sunbeam.tools import * +from utils import tmp class TestTimeVector(unittest.TestCase): def setUp(self): @@ -106,6 +107,16 @@ class TestTimeVector(unittest.TestCase): self.assertEqual(ts.keywords[0].name, "WCONINJE") + + def test_user_test(self): + tv=TimeVector(datetime.date(1999,12,31)) + tv.load('data/schedule/TEMPLATE.SCH', date=datetime.datetime(1999,12,31)) + self.assertListEqual(tv.dates, [datetime.datetime(1999,12,31), + datetime.datetime(2000,1,1), + datetime.datetime(2000,2,1), + datetime.datetime(2000,3,1)]) + + if __name__ == "__main__": unittest.main()