コード例 #1
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument(
         'category', type=str)  # Do not use category now ,maybe latter.
     self.parser.add_argument('key',
                              type=str)  # This is the editor's file path.
     self.log = getlogger("keyword")
コード例 #2
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('data', type=str)
     self.parser.add_argument('file',
                              type=werkzeug.datastructures.FileStorage,
                              location='files',
                              action='append')
     self.app = current_app._get_current_object()
     self.log = getlogger("ManageFile")
コード例 #3
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('key', type=str)
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('username', type=str)
     self.parser.add_argument('dir', type=str)
     self.parser.add_argument('request', type=str)
     self.log = getlogger("Report")
     self.app = current_app._get_current_object()
コード例 #4
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('name', type=str)
     self.parser.add_argument('new_name', type=str)
     self.parser.add_argument('key', type=str)
     self.parser.add_argument('project_name', type=str)
     self.log = getlogger("Suite")
     self.app = current_app._get_current_object()
コード例 #5
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('name', type=str)
     self.parser.add_argument('category', type=str, default="root")
     self.parser.add_argument('key', type=str, default="root")
     self.parser.add_argument('project', type=str)
     self.parser.add_argument('suite', type=str)
     self.parser.add_argument('splitext', type=str)
     self.log = getlogger("ProjectList")
     self.app = current_app._get_current_object()
コード例 #6
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('username', type=str)
     self.parser.add_argument('password', type=str)
     self.parser.add_argument('new_password', type=str, default="")
     self.parser.add_argument('email', type=str)
     self.parser.add_argument('fullname', type=str)
     self.log = getlogger("User")
     self.app = current_app._get_current_object()
コード例 #7
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('description', type=str)
     self.parser.add_argument('item', type=str)
     self.parser.add_argument('value', type=str, default="")
     self.parser.add_argument('demo', type=str)
     self.parser.add_argument('category', type=str)
     self.log = getlogger("Settings")
     self.app = current_app._get_current_object()
コード例 #8
0
ファイル: test_design.py プロジェクト: mawentao119/balance
    def __init__(self):
        self.parser = reqparse.RequestParser()
        self.parser.add_argument('method', type=str)
        self.parser.add_argument('name', type=str)
        self.parser.add_argument('project_name', type=str)
        self.parser.add_argument('suite_name', type=str)
        self.parser.add_argument('category', type=str)
        self.parser.add_argument('key', type=str)
        self.parser.add_argument('data', type=str)

        self.app = current_app._get_current_object()
        self.log = getlogger("TestDesign")
コード例 #9
0
ファイル: settings_ORG.py プロジェクト: mawentao119/balance
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('ssl', type=bool, default=False)
     self.parser.add_argument('server', type=str)
     self.parser.add_argument('port', type=str)
     self.parser.add_argument('username', type=str)
     self.parser.add_argument('password', type=str)
     self.parser.add_argument('project', type=str)
     self.parser.add_argument('success_list', type=str)
     self.parser.add_argument('fail_list', type=str)
     self.log = getlogger("Settings")
     self.app = current_app._get_current_object()
コード例 #10
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('category', type=str)
     self.parser.add_argument('project', type=str)
     self.parser.add_argument('suite', type=str)
     self.parser.add_argument('case', type=str)
     self.parser.add_argument('tags', type=str)
     self.parser.add_argument('conffile', type=str)
     self.parser.add_argument('key', type=str)
     self.parser.add_argument('task_no', type=str)
     self.log = getlogger("Task")
     self.app = current_app._get_current_object()
コード例 #11
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('name', type=str)
     self.parser.add_argument('new_name', type=str)
     self.parser.add_argument('key', type=str)
     self.parser.add_argument('description', type=str)
     self.parser.add_argument('manager', type=str, default="")
     self.parser.add_argument('cron', type=str, default="* * * * * *")
     self.parser.add_argument('boolean', type=str, default="ON")
     self.log = getlogger("Project")
     self.reserved_names = ["workspace", "project", "balance"]
     self.app = current_app._get_current_object()
コード例 #12
0
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('method', type=str)
     self.parser.add_argument('user', type=str)
     self.parser.add_argument('project', type=str)
     self.parser.add_argument('task_name', type=str)
     self.parser.add_argument('schedule_type', type=str)
     self.parser.add_argument('year', type=str)
     self.parser.add_argument('mon', type=str)
     self.parser.add_argument('day', type=str)
     self.parser.add_argument('hour', type=str)
     self.parser.add_argument('min', type=str)
     self.parser.add_argument('sec', type=str)
     self.parser.add_argument('week', type=str)
     self.parser.add_argument('day_of_week', type=str)
     self.parser.add_argument('start_date', type=str)
     self.parser.add_argument('end_date', type=str)
     self.log = getlogger("TaskList")
     self.app = current_app._get_current_object()
コード例 #13
0
# -*- utf-8 -*-
import sqlite3 as db
import os
from utils.mylogger import getlogger
from datetime import datetime, date

from robot.api import TestData

log = getlogger('TestDB')


class TestDB():
    def __init__(self, confdir):
        # Init system TestDBID with file TestCaseDB.id if exists, Create new if not exists.
        log.info("初始化数据库,系统目录:{}".format(confdir))
        self.DBID = '0'
        self.DBcon = None
        self.DBcor = None

        self.confdir = confdir
        self.dbpath = os.path.join(self.confdir, 'DBs')
        self.exclude_suite = '/work/workspace/Admin/balance'
        self.refresh_interval = 180  # seconds
        self.refresh_time = self.get_timenow()
        self.DBIDFileName = 'TestCaseDB.id'
        self.DBIDFile = os.path.join(self.dbpath, self.DBIDFileName)
        self.DBFileName = ''
        self.IsNewDBID = False

        log.info("检查DBID文件是否存在:" + self.DBIDFile)
        if os.path.exists(self.DBIDFile):
コード例 #14
0
Parse xml which generated by robot.libdoc, output auto-complet and highlight.
Generate Keywords of resource file which imported in robot case file.

"""

import os
import codecs
import xml.etree.ElementTree as ET
from robot.api import TestSuiteBuilder
from robot.running.builder import ResourceFileBuilder  # ResourceFileBuilder().build(rs) for i in rsf.imports._items:
from utils.file import mk_dirs, copy_file, get_projectdirfromkey, get_projectnamefromkey
from utils.mylogger import getlogger
from subprocess import run as subRun, PIPE, STDOUT

log = getlogger("parsing")

USER_KEYS = {
    "web": [
        "BuiltIn", "Collections", "DateTime", "String", "Screenshot",
        "SeleniumLibrary"
    ],
    "app": [
        "BuiltIn", "Collections", "DateTime", "String", "Screenshot",
        "AppiumLibrary"
    ],
    "http":
    ["BuiltIn", "Collections", "DateTime", "String", "RequestsLibrary"],
    "all": [
        "BuiltIn", "Collections", "DateTime", "OperatingSystem", "Process",
        "String", "Screenshot", "Telnet", "AppiumLibrary", "RequestsLibrary",
コード例 #15
0
ファイル: do_report.py プロジェクト: mawentao119/balance
# -*- coding: utf-8 -*-

__author__ = "charisma"
"""

"""

import os
from flask import current_app, url_for
from utils.file import get_projectnamefromkey

from utils.mylogger import getlogger

log = getlogger('Utils.Report')


def get_caseinfo(key, method):
    """
    Generate Case and Suite's Add/Delete/Modify/Execution Info
    :param key: Specific dir
    :param method: Time period :sqlite's time modifier
    :return: All data from case_report-caseinfo tab
    """

    app = current_app._get_current_object()

    log.info("get_caseinfo Key:{} method:{}".format(key, method))
    if method == 'day':
        period = '-24 hours'
        time = "Within 24 Hrs"
    elif method == 'week':
コード例 #16
0
ファイル: gitit.py プロジェクト: mawentao119/balance
# -*- coding:utf-8 -*-
import os
import git

from utils.file import remove_dir, mk_dirs
from utils.mylogger import getlogger
import shutil

log = getlogger("Git", ".")


def remote_clone(app, url):
    """
    git.colone_from
    return True/False and info
    """

    newdir = url.split('/')[-1].split('.')[0]
    to_path = os.path.join(app.config['AUTO_TEMP'], newdir)
    remove_dir(to_path) if os.path.exists(to_path) else None
    mk_dirs(to_path)

    try:
        repo = git.Repo.clone_from(url, to_path)
    except git.exc.GitError as e:
        log.error("Git clone 从 {} 到目录 {} 异常:{}".format(url, to_path, e))
        log.info("{}".format(e))
        return (False, "{}".format(e))

    log.info("Clone 从 {} 到路径:{} 成功".format(url, to_path))
コード例 #17
0
import threading
from subprocess import run as subRun, PIPE, STDOUT
import multiprocessing
import time
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import json
from utils.file import get_projectnamefromkey

from robot.api import TestSuiteBuilder, ResultWriter, ExecutionResult

from utils.file import exists_path, make_nod, write_file, read_file, mk_dirs, get_projectdirfromkey
from utils.mylogger import getlogger

log = getlogger('Utils.RUN')


# This fun is for debug the test case, result is temporliy in /runtime dir
def robot_debugrun(app, cases):

    out = app.config['AUTO_TEMP']
    if not exists_path(out):
        mk_dirs(out)

    cmd = 'robot --outputdir=' + out + ' ' + cases
    cp = subRun(cmd,
                shell=True,
                stdout=PIPE,
                stderr=STDOUT,
                text=True,
コード例 #18
0
# logging_example.py

import os
from utils.file import remove_dir, copy_file, get_projectdirfromkey, get_projectnamefromkey
from utils.mylogger import getlogger

log = getlogger("Clear")


def clear_projectres(project, key=''):

    prj = project
    if not key == '':
        prj = get_projectnamefromkey(key)

    log.info("清除项目关键字:" + prj)
    cwd = os.getcwd() + "/keyword/" + prj
    try:
        remove_dir(cwd)
    except FileNotFoundError:
        log.warning("删除项目目录失败:" + cwd)

    jsd = os.getcwd() + "/auto/www/static/js/" + prj
    log.info("清除项目的js文件:" + prj)
    try:
        remove_dir(jsd)
    except FileNotFoundError:
        log.warning("删除项目目录失败:" + jsd)


if __name__ == "__main__":
コード例 #19
0
import copy
import re

import shutil
import zipfile
from os.path import join, getsize

from flask import current_app, session
from openpyxl import Workbook, load_workbook
from robot.api import TestData
from robot.parsing.model import Step

from utils.file import get_projectdirfromkey, remove_dir
from utils.mylogger import getlogger

log = getlogger("TestCaseUnite")


def getCaseContent(cpath, cname):
    '''反写:自动化结果反写中,取得测试用例内容 '''
    if not os.path.exists(cpath):
        return "Can not find case file:" + cpath

    content = ''
    suite = TestData(source=cpath)
    for t in suite.testcase_table.tests:
        if t.name == cname:
            isHand = False
            if t.tags.value and 'Hand' in t.tags.value:
                isHand = True
            for s in t.steps:
コード例 #20
0
# -*- coding: utf-8 -*-

__author__ = "苦叶子"
"""

"""
import os
import markdown
from flask import Blueprint, render_template, session, redirect, url_for, current_app, send_file, request
from utils.file import get_splitext, exists_path, get_projectnamefromkey, read_file
from utils.parsing import prepare_editorjs
from utils.do_report import get_distinct_suites, rpt_caseratio, rpt_runprogress, rpt_moduleprogress, rpt_moduleinfo
from utils.mylogger import getlogger

log = getlogger("blueprints")
routes = Blueprint('routes', __name__)


@routes.route('/')
def index():
    return render_template('login.html')


@routes.route('/dashboard', methods=['GET', 'POST'])
def dashboard():
    if 'username' in session:
        return render_template('dashboard.html', username=session['username'])
    else:
        return render_template('login.html')

コード例 #21
0
ファイル: auth.py プロジェクト: mawentao119/balance
 def __init__(self):
     self.parser = reqparse.RequestParser()
     self.parser.add_argument('username', type=str)
     self.parser.add_argument('password', type=str)
     self.log = getlogger("auth")
コード例 #22
0
ファイル: model_design.py プロジェクト: mawentao119/balance
# -*- coding: utf-8 -*-

__author__ = "*****@*****.**"
"""
Model based test design
"""
import os
import time
import json
from utils.mylogger import getlogger

log = getlogger('Utils.Model_Design')


def walk_model(mod, method, output_file):

    startnode = None
    for node in mod["nodeDataArray"]:
        if node["id"] == -1:
            startnode = node
            break

    if (not startnode):
        log.error("找不到Start节点(id为-1)")
        return None

    links = []
    casenum = 1

    def find_paths(node):
        nonlocal links