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