summaryrefslogtreecommitdiffstats
path: root/SCons/Node/PythonTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'SCons/Node/PythonTests.py')
-rw-r--r--SCons/Node/PythonTests.py41
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):