コード例 #1
0
def generate_test_app(app_model):
    app_name=app_model.app_name.replace(' ', '_')
    project_path = os.path.join('test_gen', app_name)
    
    app_generator.generate("test_gen", app_model, rewrite_db=False, rewrite_migrations=False)
    
    manager = Manager(project_path, app_name)
    manager.migrate_database()
    manager.create_super_user(username='******', password='******')
    manager.run_server()
コード例 #2
0
def main(argv=None): # IGNORE:C0111
    '''Command line options.'''

    if argv is None:
        argv = sys.argv
    else:
        sys.argv.extend(argv)

    program_name = os.path.basename(sys.argv[0])
    program_version = "v%s" % __version__
    program_build_date = str(__updated__)
    program_version_message = '%%(prog)s %s (%s)' % (program_version, program_build_date)
    program_shortdesc = __import__('__main__').__doc__.split("\n")[1]
    program_license = '''%s

  Created by Tim1 on %s.
  Copyright 2015 Tim1 E2. All rights reserved.

  Distributed on an "AS IS" basis without warranties
  or conditions of any kind, either express or implied.

USAGE
''' % (program_shortdesc, str(__date__))

    try:
        # Setup argument parser
        parser = ArgumentParser(description=program_license, formatter_class=RawDescriptionHelpFormatter)
        parser.add_argument('-V', '--version', action='version', version=program_version_message)
        parser.add_argument('--new', dest='generate_new', action='store_true', help="generate a new test application, regenerate database and create a test user, same as -md --migrate --createsuperuser")
        parser.add_argument('-m', '--rewrite-migrations', dest='rewrite_migrations', action='store_true', help="don't backup migrations when generating, old migrations will be overwritten")
        parser.add_argument('-d', '--rewrite-database', dest='rewrite_db', action='store_true', help="don't backup database when generating, old database will be overwritten")
        parser.add_argument('--migrate', dest='migrate', action='store_true', help="do makemigrations and migrate the database")
        parser.add_argument('--createsuperuser', dest='create_super_user', action='store_true', help="add a test super user username=a, password=a, [email protected]")
        parser.add_argument('--runserver', dest='runserver', action='store_true', help="start the server")
        parser.add_argument(dest="xml_path", help="path to xml model file", metavar="xml_path")
        parser.add_argument(dest="dest_path", help="path to project destination folder", metavar="dest_path")
        
        # Process arguments
        args = parser.parse_args()

        xml_path = args.xml_path
        dest_path = args.dest_path
        migrate = args.migrate
        create_super_user = args.create_super_user
        runserver = args.runserver
        rewrite_migrations = args.rewrite_migrations
        rewrite_db = args.rewrite_db
        
        if args.generate_new:
            rewrite_migrations=True
            rewrite_db=True
            migrate=True
            create_super_user=True

        if not os.path.exists(xml_path):
            raise Exception('Provide a valid path to xml model file.')
        if not os.path.isfile(xml_path):
            raise Exception('Provide a valid path to xml model file.')
        
        if not os.path.exists(dest_path):
            raise Exception('Provide a valid path to project destination folder.')
        if not os.path.isdir(dest_path):
            raise Exception('Provide a valid path to project destination folder.')
        
        print('---generating application---')
        
        app_model = app_generator.generate_app_from_xml(path=dest_path, 
                                                        xml_model_path=xml_path, 
                                                        rewrite_db=rewrite_db, 
                                                        rewrite_migrations=rewrite_migrations)
        
        print('---application generated---')
        
        if migrate or create_super_user or runserver:
            project_name = app_model.app_name.replace(' ', '_')
            project_path = os.path.join(dest_path, project_name)
            manager = Manager(project_path, project_name)
            
            if migrate:
                print('---migrating database---')
                manager.migrate_database()
            if create_super_user:
                print('---adding test super user---')
                print('username=a')
                print('password=a')
                print('[email protected]')
                manager.create_super_user(username='******', password='******')
            if runserver:
                print('---starting server---')
                manager.run_server()
        
        return 0
    except KeyboardInterrupt:
        ### handle keyboard interrupt ###
        return 0
    except Exception as e:
        indent = len(program_name) * " "
        sys.stderr.write(program_name + ": " + repr(e) + "\n")
        sys.stderr.write(indent + "  for help use --help")
        return 2