@@ -1769,7 +1769,11 @@ def test_AppendENVPath(self) -> None:
17691769 env1 .AppendENVPath (
17701770 'MYPATH' , r'C:\mydir\num\one' , 'MYENV' , sep = ';' , delete_existing = True
17711771 )
1772- # this should do nothing since delete_existing is false (the default)
1772+ assert (
1773+ env1 ['MYENV' ]['MYPATH' ] == r'C:\mydir\num\two;C:\mydir\num\three;C:\mydir\num\one'
1774+ ), env1 ['MYENV' ]['MYPATH' ]
1775+
1776+ # this should do nothing since delete_existing is false
17731777 env1 .AppendENVPath ('MYPATH' , r'C:\mydir\num\three' , 'MYENV' , sep = ';' )
17741778 assert (
17751779 env1 ['MYENV' ]['MYPATH' ] == r'C:\mydir\num\two;C:\mydir\num\three;C:\mydir\num\one'
@@ -1786,8 +1790,8 @@ def test_AppendENVPath(self) -> None:
17861790 def test_AppendUnique (self ) -> None :
17871791 """Test appending to unique values to construction variables
17881792
1789- This strips values that are already present when lists are
1790- involved. """
1793+ This strips values that are already present when lists are involved.
1794+ """
17911795 env = self .TestEnvironment (AAA1 = 'a1' ,
17921796 AAA2 = 'a2' ,
17931797 AAA3 = 'a3' ,
@@ -1800,7 +1804,8 @@ def test_AppendUnique(self) -> None:
18001804 BBB5 = ['b5' ],
18011805 CCC1 = '' ,
18021806 CCC2 = '' ,
1803- DDD1 = ['a' , 'b' , 'c' ])
1807+ DDD1 = ['a' , 'b' , 'c' ],
1808+ DDD2 = ['a' , 'a' , 'b' ])
18041809 env ['LL1' ] = [env .Literal ('a literal' ), env .Literal ('b literal' )]
18051810 env ['LL2' ] = [env .Literal ('c literal' ), env .Literal ('b literal' )]
18061811 env .AppendUnique (AAA1 = 'a1' ,
@@ -1816,6 +1821,7 @@ def test_AppendUnique(self) -> None:
18161821 CCC1 = 'c1' ,
18171822 CCC2 = ['c2' ],
18181823 DDD1 = 'b' ,
1824+ DDD2 = 'a' ,
18191825 LL1 = env .Literal ('a literal' ),
18201826 LL2 = env .Literal ('a literal' ))
18211827
@@ -1832,6 +1838,7 @@ def test_AppendUnique(self) -> None:
18321838 assert env ['CCC1' ] == 'c1' , env ['CCC1' ]
18331839 assert env ['CCC2' ] == ['c2' ], env ['CCC2' ]
18341840 assert env ['DDD1' ] == ['a' , 'b' , 'c' ], env ['DDD1' ]
1841+ assert env ['DDD2' ] == ['a' , 'a' , 'b' ], env ['DDD2' ] # keep existing dup
18351842 assert env ['LL1' ] == [
18361843 env .Literal ('a literal' ),
18371844 env .Literal ('b literal' ),
@@ -1851,6 +1858,9 @@ def test_AppendUnique(self) -> None:
18511858 env .AppendUnique (DDD1 = ['e' , 'f' , 'e' ], delete_existing = True )
18521859 assert env ['DDD1' ] == ['c' , 'a' , 'b' , 'f' , 'e' ], env ['DDD1' ] # add last
18531860
1861+ env .AppendUnique (DDD2 = ['a' ], delete_existing = True )
1862+ assert env ['DDD2' ] == ['b' , 'a' ], env ['DDD2' ] # all existing instances deleted
1863+
18541864 # issue regression: substrings should not be deleted
18551865 env .AppendUnique (BBB4 = 'b4.newer' , delete_existing = True )
18561866 assert env ['BBB4' ] == ['b4' , 'b4.new' , 'b4.newer' ], env ['BBB4' ]
@@ -2569,7 +2579,8 @@ def test_PrependUnique(self) -> None:
25692579 BBB5 = ['b5' ],
25702580 CCC1 = '' ,
25712581 CCC2 = '' ,
2572- DDD1 = ['a' , 'b' , 'c' ])
2582+ DDD1 = ['a' , 'b' , 'c' ],
2583+ DDD2 = ['b' , 'a' , 'a' ])
25732584 env .PrependUnique (AAA1 = 'a1' ,
25742585 AAA2 = ['a2' ],
25752586 AAA3 = ['a3' , 'b' , 'c' , 'b' , 'a3' ], # ignore dups
@@ -2582,7 +2593,8 @@ def test_PrependUnique(self) -> None:
25822593 BBB5 = ['b5.new' ],
25832594 CCC1 = 'c1' ,
25842595 CCC2 = ['c2' ],
2585- DDD1 = 'b' )
2596+ DDD1 = 'b' ,
2597+ DDD2 = 'a' )
25862598 assert env ['AAA1' ] == 'a1a1' , env ['AAA1' ]
25872599 assert env ['AAA2' ] == ['a2' ], env ['AAA2' ]
25882600 assert env ['AAA3' ] == ['c' , 'b' , 'a3' ], env ['AAA3' ]
@@ -2596,6 +2608,7 @@ def test_PrependUnique(self) -> None:
25962608 assert env ['CCC1' ] == 'c1' , env ['CCC1' ]
25972609 assert env ['CCC2' ] == ['c2' ], env ['CCC2' ]
25982610 assert env ['DDD1' ] == ['a' , 'b' , 'c' ], env ['DDD1' ]
2611+ assert env ['DDD2' ] == ['b' , 'a' , 'a' ], env ['DDD2' ] # keep existing dup
25992612
26002613 env .PrependUnique (DDD1 = 'b' , delete_existing = True )
26012614 assert env ['DDD1' ] == ['b' , 'a' , 'c' ], env ['DDD1' ] # b moves to front
@@ -2606,6 +2619,9 @@ def test_PrependUnique(self) -> None:
26062619 env .PrependUnique (DDD1 = ['d' , 'e' , 'd' ], delete_existing = True )
26072620 assert env ['DDD1' ] == ['d' , 'e' , 'a' , 'c' , 'b' ], env ['DDD1' ]
26082621
2622+ env .PrependUnique (DDD2 = ['a' ], delete_existing = True )
2623+ assert env ['DDD2' ] == ['a' , 'b' ], env ['DDD2' ] # all existing instances deleted
2624+
26092625 # issue regression: substrings should not be deleted
26102626 env .PrependUnique (BBB4 = 'b4.newer' , delete_existing = True )
26112627 assert env ['BBB4' ] == ['b4.newer' , 'b4.new' , 'b4' ], env ['BBB4' ]
0 commit comments