Skip to main content

No project description provided

Project description

UtBot Executor

Util for python code execution and state serialization.

Installation

You can install module from PyPI:

python -m pip install utbot-executor

Usage

From console with socket listener

Run with your <hostname> and <port> for socket connection

$ python -m utbot_executor <hostname> <port> <logfile> [<loglevel DEBUG | INFO | ERROR>] <coverage_hostname> <coverage_port>

Request format

{
  "functionName": "f",
  "functionModule": "my_module.submod1",
  "imports": ["sys", "math", "json"],
  "syspaths": ["/home/user/my_project/"],
  "argumentsIds": ["1", "2"],
  "kwargumentsIds": ["4", "5"],
  "serializedMemory": "string",
  "memoryMode": "REDUCE",
  "filepath": ["/home/user/my_project/my_module/submod1.py"],
  "coverageId": "1"
}
  • functionName - name of the tested function
  • functionModule - name of the module of the tested function
  • imports - all modules which need to run function with current arguments
  • syspaths - all syspaths which need to import modules (usually it is a project root)
  • argumentsIds - list of argument's ids
  • kwargumentsIds - list of keyword argument's ids
  • serializedMemory - serialized memory throw deep_serialization algorithm
  • memoryMode - serialization mode (PICKLE, REDUCE)
  • filepath - path to the tested function's containing file
  • coverageId - special id witch will be used for sending information about covered lines

Response format:

If execution is successful:

{
        "status": "success",
        "isException": false,
        "statements": [1, 2, 3],
        "missedStatements": [4, 5],
        "stateInit": "string",
        "stateBefore": "string",
        "stateAfter": "string",
        "diffIds": ["3", "4"],
        "argsIds": ["1", "2", "3"],
        "kwargs": ["4", "5", "6"],
        "resultId": "7"
}
  • status - always "success"
  • isException - boolean value, if it is true, execution ended with an exception
  • statements - list of the numbers of covered rows
  • missedStatements - list of numbers of uncovered rows
  • stateInit - serialized states from request
  • stateBefore - serialized states of arguments before execution
  • stateAfter - serialized states of arguments after execution
  • diffIds - ids of the objects which have been changed
  • argsIds - ids of the function's arguments
  • kwargsIds - ids of the function's keyword arguments
  • resultId - id of the returned value

or error format if there was exception in running algorith:

{
        "status": "fail",
        "exception": "stacktrace"
}
  • status - always "fail"
  • exception - string representation of the exception stack trace

Submodule deep_serialization

JSON serializer and deserializer for python objects

States memory json-format

{
  "objects": {
    "id": {
      "id": "1",
      "strategy": "strategy name",
      "typeinfo": {
        "module": "builtins",
        "kind": "int"
      },
      "comparable": true,
      
      // iff strategy is 'repr'
      "value": "1",

      // iff strategy is 'list' or 'dict'
      "items": ["3", "2"],

      // iff strategy = 'reduce'
      "constructor": "mymod.A.__new__",
      "args": ["mymod.A"],
      "state": {"a": "4", "b": "5"},
      "listitems": ["7", "8"],
      "dictitems": {"ka": "10"}
    }
  }
}

Source

GitHub repository

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

utbot_executor-1.9.7.tar.gz (18.9 kB view hashes)

Uploaded Source

Built Distribution

utbot_executor-1.9.7-py3-none-any.whl (24.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page