Beispiel #1
0
    def test_equality(self):
        """ Examples of valid equality tests for NamedTuples """
        p1 = Path.home()
        p2 = Path.cwd()
        n1a = TreeNode.new(p1)
        n1b = TreeNode.new(p1)
        n2a = TreeNode.new(p2)
        n2b = TreeNode.new(p2)
        for tn in (n1a, n1b, n2a, n2b):
            tn.add(Path("./data"))
            tn.add(Path("requirements.txt"))

        # NamedTuples implement compare
        assert n1a == n1b
        assert n1a != n1b._replace(files=[])

        # Deep compare works
        case = "case_100"
        tn1 = Customs(case, FileType.PICKLE).read()
        tn2 = copy.deepcopy(tn1)

        assert tn1 == tn2
        # Fragile - this is tied to case_100 dir list order
        tn2.dirs[16].dirs[0].files.append('foo')
        assert tn1 != tn2
def collect_data(p: Path, exclusions: Set[str]) -> TreeNode:
    """ Generate hierarchical file data """
    result = TreeNode.new(p)
    collect_data_recurse(p, result, exclusions)
    return result