File: py_u_TestRemove.py

package info (click to toggle)
ecflow 5.15.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 51,868 kB
  • sloc: cpp: 269,341; python: 22,756; sh: 3,609; perl: 770; xml: 333; f90: 204; ansic: 141; makefile: 70
file content (59 lines) | stat: -rw-r--r-- 2,191 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#
# Copyright 2009- ECMWF.
#
# This software is licensed under the terms of the Apache Licence version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
# In applying this licence, ECMWF does not waive the privileges and immunities
# granted to it by virtue of its status as an intergovernmental organisation
# nor does it submit to any jurisdiction.
#

import os
import ecflow
import copy
from ecflow import Suite, Family, Task, Defs, Clock, DState, PartExpression, Variable, Limit, InLimit, \
    Date, Day, Event, Meter, Label, Autocancel, Days, TimeSlot, TimeSeries, Style, State, \
    RepeatString, RepeatDate, RepeatInteger, RepeatDay, RepeatEnumerated, \
    Verify, PrintStyle, Time, Today, Late, Cron, Client, debug_build
import ecflow_test_util as Test

if __name__ == "__main__":
    Test.print_test_start(os.path.basename(__file__))

    defs = Defs()
    s0 = defs.add_suite("s0")
    s1 = defs.add_suite("s1")
    f1 = s1.add_family("f1")
    t1 = f1.add_task("t1")
    t2 = f1.add_task("t2")
    assert len(list(f1.nodes)) == 2, "Expected family to have 2 nodes"
    defs_copy = copy.copy(defs)

    t2_remove = t2.remove()
    assert len(f1) == 1, "Expected family to have 1 nodes"

    t1_remove = t1.remove()
    assert len(f1) == 0, "Expected family to have 0 nodes"

    f1_remove = f1.remove()
    assert len(s1) == 0, "Expected suite to have no nodes"

    node_vec = defs.get_all_nodes()
    assert len(node_vec) == 2, "Expected 2 suites only, but found " + str(len(node_vec))

    s1_remove = s1.remove()
    node_vec = defs.get_all_nodes()
    assert len(node_vec) == 1, "Expected 1 suites only, but found " + str(len(node_vec))

    s0_remove = s0.remove()
    node_vec = defs.get_all_nodes()
    assert len(node_vec) == 0, "Expected 0 suites only, but found " + str(len(node_vec))

    # =========================================================
    defs2 = Defs();
    defs2.add_suite(s0_remove)
    s = defs2.add_suite(s1_remove)  # s1_remove is returned as s
    f = s.add_family(f1_remove)  # f1_remove is returned as f
    f.add_task(t1_remove)
    f.add_task(t2_remove)
    assert defs2 == defs_copy, "expected defs to be the same"