@@ -49,3 +49,38 @@ def test_diff_children():
4949 assert diff .has_diffs ()
5050
5151 # TODO: test print_detailed
52+
53+
54+ def test_order_children_default (backend_a , backend_b ):
55+ """Test that order_children_default is properly called when calling get_children."""
56+
57+ class MyDiff (Diff ):
58+ @classmethod
59+ def order_children_default (cls , children ):
60+ """Return the children ordered in alphabetical order."""
61+ keys = sorted (children .keys (), reverse = False )
62+ for key in keys :
63+ yield children [key ]
64+
65+ # Validating default order method
66+ diff_a_b = backend_a .diff_from (backend_b , diff_class = MyDiff )
67+ children = diff_a_b .get_children ()
68+ children_names = [child .name for child in children ]
69+ assert children_names == ["atl" , "nyc" , "rdu" , "sfo" ]
70+
71+
72+ def test_order_children_custom (backend_a , backend_b ):
73+ """Test that a custom order_children method is properly called when calling get_children."""
74+
75+ class MyDiff (Diff ):
76+ @classmethod
77+ def order_children_site (cls , children ):
78+ """Return the site children ordered in reverse-alphabetical order."""
79+ keys = sorted (children .keys (), reverse = True )
80+ for key in keys :
81+ yield children [key ]
82+
83+ diff_a_b = backend_a .diff_from (backend_b , diff_class = MyDiff )
84+ children = diff_a_b .get_children ()
85+ children_names = [child .name for child in children ]
86+ assert children_names == ["sfo" , "rdu" , "nyc" , "atl" ]
0 commit comments