def gather_tests_info( selected_tests = [] ) : tests_config._fetch_tests() tests = [] all_tests = tests_config.all_tests() for i in all_tests : pagetest = all_tests[i]() if isinstance(pagetest, utils.PageTest) : test = {} test[ 'id' ] = i test[ 'name' ] = utils.test_name(pagetest) test[ 'url' ] = pagetest.url test[ 'doc' ] = pagetest.__doc__ test[ 'checked' ] = i in selected_tests test[ 'subtests' ] = [] whose = tests_config.test_id_to_whose( i ) test[ 'whose' ] = whose if not whose is None else "-" test[ 'status' ] = tests_config.test_id_to_status( i ) tags = db.session.query( StoredTest ).get( i ).tags test[ 'tags' ] = map( lambda tag : tag.value, tags ) for j in all_tests : subtest = all_tests[j]() if isinstance(subtest, utils.SubTest) and\ subtest.__parent_test__ == utils.test_name(pagetest) : stest = {} stest[ 'id' ] = j stest[ 'name' ] = utils.test_name(subtest) stest[ 'doc' ] = subtest.__doc__ stest[ 'checked' ] = j in selected_tests whose = tests_config.test_id_to_whose( j ) stest[ 'whose' ] = whose if not whose is None else "-" stest[ 'status' ] = tests_config.test_id_to_status( j ) test[ 'subtests' ].append( stest ) tags = db.session.query( StoredTest ).get( j ).tags stest[ 'tags' ] = map( lambda tag : tag.value, tags ) tests.append( test ) elif isinstance(pagetest, utils.MainTest) : test = {} test[ 'id' ] = i test[ 'name' ] = utils.test_name(pagetest) test[ 'url' ] = "" test[ 'doc' ] = pagetest.__doc__ test[ 'checked' ] = i in selected_tests test[ 'subtests' ] = [] whose = tests_config.test_id_to_whose( i ) test[ 'whose' ] = whose if not whose is None else "-" test[ 'status' ] = tests_config.test_id_to_status( i ) tags = db.session.query( StoredTest ).get( i ).tags test[ 'tags' ] = map( lambda tag : tag.value, tags ) tests.append(test) return tests
def verify_test(test_id=None,code=None) : errors = [] present = False try : #remember locals b = locals().keys() #execute test code exec code #checkout wich name appeared in locals all_tests = tests_config.all_tests() a = locals().keys() for x in a : if not x in b : test = locals()[x] if inspect.isclass(test) and issubclass(test, utils.Test) : present = True if issubclass(test, utils.SubTest) : if test.__parent_test__ is None : errors.append( u"Не указан аттрибут __parent_test__ у подтеста" ) else : parent_here = False for x in all_tests : if utils.test_name(all_tests[x]) == test.__parent_test__ : parent_here = True if not parent_here : errors.append( u'Нету теста страницы с id="{0}"'.format(test.__parent_test__) ) if not test.__parent_test__ is None : all_tests = tests_config.all_tests() class_name = utils.test_name(test) for x in all_tests : if not (test_id == x) and (utils.test_name(all_tests[x]) == class_name) : errors.append( u'Уже есть тест "{0}"'.format(utils.test_name(test)) ) except : errors.append( u'exec теста рыгнул exception: {0}'.format(traceback.format_exc().decode('utf-8')) ) if not present : errors.append( u'В коде не обнаружен класс теста' ) return errors
def get_test_case( job ) : selected_tests = [ x.test_id for x in job.tests] tests = [] all_tests = tests_config.all_tests() for i in all_tests : if issubclass(all_tests[i], utils.MainTest) and\ (i in selected_tests) : pagetest = all_tests[i]() for j in all_tests : if issubclass(all_tests[j], utils.SubTest) and\ (j in selected_tests) and\ all_tests[j].__parent_test__ == utils.test_name(pagetest) : subtest = all_tests[j]() pagetest.addSubtest(subtest) tests.append( pagetest ) return tests
def remove_test(request) : test_id = int(request.POST[ 'test_id' ]) all_tests = tests_config.all_tests() if issubclass( all_tests[test_id], utils.PageTest ) : ids_to_del = [ test_id ] for i in all_tests : if hasattr( all_tests[i], '__parent_test__' ) and\ all_tests[i].__parent_test__ == utils.test_name( all_tests[ test_id ] ) : ids_to_del.append( i ) for id in ids_to_del : db.session.query(models.StoredTest).\ filter(models.StoredTest.test_id == id).\ delete() else : db.session.query(models.StoredTest).\ filter(models.StoredTest.test_id == test_id).\ delete() json_resp = json.dumps( { "status" : "ok" } ) return HttpResponse(json_resp, mimetype="application/json")
def test_to_id( test ) : class_name = utils.test_name(test) all_t = all_tests() for x in all_t : if utils.test_name(all_t[x]) == class_name : return x