diff options
Diffstat (limited to 'SCons/Node/PythonTests.py')
-rw-r--r-- | SCons/Node/PythonTests.py | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/SCons/Node/PythonTests.py b/SCons/Node/PythonTests.py index 2be2b29..95ea0d5 100644 --- a/SCons/Node/PythonTests.py +++ b/SCons/Node/PythonTests.py @@ -25,12 +25,12 @@ import unittest import SCons.Errors import SCons.Node.Python +from SCons.Script import Depends class ValueTestCase(unittest.TestCase): def test_Value(self) -> None: - """Test creating a Value() object - """ + """Test creating a Value() object.""" v1 = SCons.Node.Python.Value('a') assert v1.value == 'a', v1.value @@ -39,45 +39,50 @@ class ValueTestCase(unittest.TestCase): assert v2.value == value2, v2.value assert v2.value is value2, v2.value + # the two nodes are not the same though they have same attributes assert v1 is not v2 assert v1.value == v2.value + assert v1.name == v2.name + # node takes the built_value if one is supplied. v3 = SCons.Node.Python.Value('c', 'cb') assert v3.built_value == 'cb' def test_build(self) -> None: - """Test "building" a Value Node - """ + """Test "building" a Value Node.""" class fake_executor: def __call__(self, node) -> None: node.write('faked') - v1 = SCons.Node.Python.Value('b', 'built') + # *built_value* arg means already built, executor will not be called + v1 = SCons.Node.Python.Value('b', built_value='built') v1.executor = fake_executor() v1.build() assert v1.built_value == 'built', v1.built_value + # not built, executor will build it v2 = SCons.Node.Python.Value('b') v2.executor = fake_executor() v2.build() assert v2.built_value == 'faked', v2.built_value + # test the *name* parameter to refer to the node v3 = SCons.Node.Python.Value(b'\x00\x0F', name='name') v3.executor = fake_executor() v3.build() - assert v3.name == 'name', v3.name assert v3.built_value == 'faked', v3.built_value + # building the node does not change the name + assert v3.name == 'name', v3.name def test_read(self) -> None: - """Test the Value.read() method - """ + """Test the Value.read() method.""" v1 = SCons.Node.Python.Value('a') x = v1.read() assert x == 'a', x def test_write(self) -> None: - """Test the Value.write() method - """ + """Test the Value.write() method.""" + # creating the node without built_value does not set it v1 = SCons.Node.Python.Value('a') assert v1.value == 'a', v1.value assert not hasattr(v1, 'built_value') @@ -87,8 +92,7 @@ class ValueTestCase(unittest.TestCase): assert v1.built_value == 'new', v1.built_value def test_get_csig(self) -> None: - """Test calculating the content signature of a Value() object - """ + """Test calculating the content signature of a Value() object.""" v1 = SCons.Node.Python.Value('aaa') csig = v1.get_csig(None) assert csig == 'aaa', csig @@ -101,8 +105,17 @@ class ValueTestCase(unittest.TestCase): csig = v3.get_csig(None) assert csig == 'None', csig - - + # Dependencies: a tree of Value nodes comes back as a single string. + # This may change someday, bot for now: + v1 = SCons.Node.Python.Value('node1') + v2 = SCons.Node.Python.Value('node2') + v3 = SCons.Node.Python.Value('node3') + v4 = SCons.Node.Python.Value('node4') + Depends(v1, [v2, v3]) + Depends(v3, v4) + assert v1.read() == 'node1', v1.read + csig = v1.get_csig() + assert csig == 'node1node2node3node4', csig class ValueNodeInfoTestCase(unittest.TestCase): |