@@ -0,0 +1,1371 @@
+from __future__ import print_function%0Afrom __future__ import absolute_import%0Afrom __future__ import unicode_literals%0A%0A%0Afrom .utils import SubdueTestCase, TempSub%0A%0A%0Adef lines(items):%0A    return '%5Cn'.join(items.split()) + '%5Cn'%0A%0Aclass TestBuiltinCommands(SubdueTestCase):%0A%0A    def test_commands(self):%0A        commands = %5B%0A                'dir1/cmd1.1',%0A                'dir1/cmd1.2',%0A                'dir1/cmd1.2',%0A                'dir1/dir1.1/cmd1.1.1',%0A                'dir1/dir1.1/cmd1.1.2',%0A                'dir1/dir1.1/cmd1.1.3',%0A                'cmd1',%0A                'sh-eval',%0A                'dir2/cmd2.1',%0A                'sh-absurd/contained',%0A                %5D%0A        with TempSub(self, name='boo', thin=False) as s:%0A            for command in commands:%0A                s.create_subcommand(command, 'sh' '')%0A%0A            s.run('commands').assertSucess(%0A                    ).stdout.matches(lines('cmd1 dir1 dir2 eval sh-absurd'), anchored=True)%0A%0A            s.run('commands',  'dir1').assertSucess(%0A                    ).stdout.matches(lines('cmd1.1 cmd1.2 dir1.1'), anchored=True)%0A%0A            s.run('commands',  'dir1', 'dir1.1').assertSucess(%0A                    ).stdout.matches(lines('cmd1.1.1 cmd1.1.2 cmd1.1.3'), anchored=True)%0A%0A            s.run('commands',  'dir2').assertSucess(%0A                    ).stdout.matches(lines('cmd2.1'), anchored=True)%0A%0A

The commands builtin