def test_simple_command_decorator(self): manager = Manager(self.app) @manager.command def hello(): print "hello" assert 'hello' in manager._commands manager.handle("manage.py", "hello") assert 'hello' in sys.stdout.getvalue()
def test_simple_command_decorator_with_pos_arg(self): manager = Manager(self.app) @manager.command def hello(name): print "hello", name assert 'hello' in manager._commands manager.handle("manage.py", "hello", ["joe"]) assert 'hello joe' in sys.stdout.getvalue()
def test_command_decorator_with_boolean_options(self): manager = Manager(self.app) @manager.command def verify(verified=False): "Checks if verified" print "VERIFIED ?", "YES" if verified else "NO" assert 'verify' in manager._commands manager.handle("manage.py", "verify", ["--verified"]) assert 'YES' in sys.stdout.getvalue() manager.handle("manage.py", "verify", ["-v"]) assert 'YES' in sys.stdout.getvalue() manager.handle("manage.py", "verify", []) assert 'NO' in sys.stdout.getvalue() try: manager.handle("manage.py", "verify", ["-h"]) except SystemExit: pass assert 'Checks if verified' in sys.stdout.getvalue()
def test_command_decorator_with_options(self): manager = Manager(self.app) @manager.command def hello(name='fred'): "Prints your name" print "hello", name assert 'hello' in manager._commands manager.handle("manage.py", "hello", ["--name=joe"]) assert 'hello joe' in sys.stdout.getvalue() manager.handle("manage.py", "hello", ["-n joe"]) assert 'hello joe' in sys.stdout.getvalue() try: manager.handle("manage.py", "hello", ["-h"]) except SystemExit: pass assert 'Prints your name' in sys.stdout.getvalue() try: manager.handle("manage.py", "hello", ["--help"]) except SystemExit: pass assert 'Prints your name' in sys.stdout.getvalue()
def test_command_decorator_with_additional_options(self): manager = Manager(self.app) @manager.option('-n', '--name', dest='name', help='Your name') def hello(name): print "hello", name assert 'hello' in manager._commands manager.handle("manage.py", "hello", ["--name=joe"]) assert 'hello joe' in sys.stdout.getvalue() try: manager.handle("manage.py", "hello", ["-h"]) except SystemExit: pass assert "Your name" in sys.stdout.getvalue() @manager.option('-n', '--name', dest='name', help='Your name') @manager.option('-u', '--url', dest='url', help='Your URL') def hello_again(name, url=None): if url: print "hello", name, "from", url else: print "hello", name assert 'hello_again' in manager._commands manager.handle("manage.py", "hello_again", ["--name=joe"]) assert 'hello joe' in sys.stdout.getvalue() manager.handle("manage.py", "hello_again", ["--name=joe", "--url=reddit.com"]) assert 'hello joe from reddit.com' in sys.stdout.getvalue()
def test_simple_command_decorator_with_pos_arg_and_options(self): manager = Manager(self.app) @manager.command def hello(name, url=None): if url: assert type(url) is unicode print "hello", name, "from", url else: assert type(name) is unicode print "hello", name assert 'hello' in manager._commands manager.handle("manage.py", "hello", ["joe"]) assert 'hello joe' in sys.stdout.getvalue() manager.handle("manage.py", "hello", ["joe", '--url=reddit.com']) assert 'hello joe from reddit.com' in sys.stdout.getvalue()
def test_parse_templates(self): """Test the --parse-templates option. """ # Create a file in the app's templates directory self.app.template_folder = self.path('templates') self.create_files({ 'templates/template.html': """ {% assets "in", output="output" %} {{ ASSET_URL }} {% endassets %} """, 'in': "foo" }) # Run the build command with --parse-templates, which should pick # up the bundle we defined in above template. mgmt = Manager(self.app) mgmt.add_command('assets', ManageAssets(log=stdout_log)) mgmt.handle('test', 'assets', ['--parse-templates', 'build']) assert self.exists('output')
def test_parse_templates(self): """Test the --parse-templates option. """ # Create a file in the app's templates directory self.app.template_folder = self.path('templates') self.create_files({ 'templates/template.html': """ {% assets "in", output="output" %} {{ ASSET_URL }} {% endassets %} """, 'in': "foo" }) # Run the build command with --parse-templates, which should pick # up the bundle we defined in above template. mgmt = Manager(self.app) mgmt.add_command('assets', ManageAssets(log=stdout_log)) mgmt.handle('test', ['assets', '--parse-templates', 'build']) assert self.exists('output')
def test_parse_templates(self): """Test the --parse-templates option. """ # Create a file in the app's templates directory self.app.template_folder = self.path("templates") self.create_files( { "templates/template.html": """ {% assets "in", output="output" %} {{ ASSET_URL }} {% endassets %} """, "in": "foo", } ) # Run the build command with --parse-templates, which should pick # up the bundle we defined in above template. mgmt = Manager(self.app) mgmt.add_command("assets", ManageAssets(log=stdout_log)) mgmt.handle("test", ["assets", "--parse-templates", "build"]) assert self.exists("output")
def test_run_existing_command(self): manager = Manager(self.app) manager.add_command("simple", SimpleCommand()) manager.handle("manage.py", "simple") assert 'OK' in sys.stdout.getvalue()
def handle(self, prog, *args, **kwargs): # Chop off full path to program name in argument parsing. prog = os.path.basename(prog) return BaseManager.handle(self, prog, *args, **kwargs)