File size: 1,043 Bytes
795f737
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import unittest
from baim.state import Element, State


class StateTests(unittest.TestCase):
    def test_hash_excludes_ephemeral_references(self):
        a = State("a", 1, "https://example.org", (Element("e1", "button", "  Next  ", "0"),))
        b = State("b", 7, a.origin, (Element("e9", "button", "Next", "0"),))
        self.assertEqual(a.state_hash, b.state_hash)
        self.assertIn("reset", b.delta(a))

    def test_sensitive_name_never_serialized(self):
        a = State("a", 1, "https://example.org", (Element("e1", "textbox", "secret", "0", sensitive=True),))
        self.assertNotIn("secret", str(a.compact()))

    def test_order_changes_hash(self):
        elements = (Element("e1", "link", "A", "0"), Element("e2", "link", "B", "1"))
        a = State("a", 1, "https://example.org", elements)
        b = State("a", 2, a.origin, tuple(reversed(elements)))
        self.assertNotEqual(a.state_hash, b.state_hash)
        self.assertEqual(b.delta(a)["order"], ["e2", "e1"])


if __name__ == "__main__":
    unittest.main()