Testoot

Testoot is the main logic class for testing. It’s configured by storage, serializer and canonize policy.

class testoot.pub.BaseTestoot(storage: testoot.base.TestootStorage, serializer: testoot.base.TestootSerializer, canonize_policy: testoot.base.CanonizePolicy, comparator: Optional[testoot.base.Comparator] = None)[source]

Main logic object. Can test and canonize data.

__init__(storage: testoot.base.TestootStorage, serializer: testoot.base.TestootSerializer, canonize_policy: testoot.base.CanonizePolicy, comparator: Optional[testoot.base.Comparator] = None)[source]

Constructor

Parameters
  • storage – storage instance

  • serializer – serializer instance

  • canonize_policy

    controls behavior when we met result test conflict.

    • testoot.pub.NoCanonizePolicy always raises an error in assert.

    • testoot.pub.AskCanonizePolicy with –canonize pytest flag asks user approval for canonizing. If user refuses it skips for later and raises an error in assert then.

  • comparator – comparison for objects

property canonize_policy
clone(*, storage: Optional[testoot.base.TestootStorage] = None, serializer: Optional[testoot.base.TestootSerializer] = None, canonize_policy: Optional[testoot.base.CanonizePolicy] = None, comparator: Optional[testoot.base.Comparator] = None)[source]
property storage
test(obj: any, context: testoot.base.TestootContext, suffix: Optional[str] = None, file_type_hint: Optional[testoot.base.FileType] = None, comparator: Optional[testoot.base.Comparator] = None, serializer: Optional[testoot.base.TestootSerializer] = None)[source]

Tests object.

Parameters
  • obj – test object

  • context – test context

  • suffix – test suffix for making a few tests in one context

  • file_type_hint – override serializer hint for file

  • comparator – custom comparator override

  • serializer – custom serializer override

Returns

test_filename(filename: str, *, context: testoot.base.TestootContext, comparator: Optional[testoot.base.Comparator] = None, serializer: Optional[testoot.base.TestootSerializer] = None)[source]

Tests file generated by software.

Parameters
  • filename – test filename

  • context – test context

  • comparator – custom comparator override

  • serializer – custom serializer override

Returns

class testoot.pub.Testoot(base: testoot.base_testoot.BaseTestoot, context: testoot.base.TestootContext)[source]
__init__(base: testoot.base_testoot.BaseTestoot, context: testoot.base.TestootContext)[source]

Initialize self. See help(type(self)) for accurate signature.

property base
property canonize_policy
property storage
test(obj: any, suffix: Optional[str] = None, comparator: Optional[testoot.base.Comparator] = None, serializer: Optional[testoot.base.TestootSerializer] = None)[source]

Tests object.

Parameters
  • obj – test object

  • suffix – test suffix for making a few tests in one context

  • comparator – custom comparator override

  • serializer – custom serializer override

Returns

test_filename(filename: str, comparator: Optional[testoot.base.Comparator] = None, serializer: Optional[testoot.base.TestootSerializer] = None)[source]

Tests generated file content.

Parameters
  • filename – test filename

  • comparator – custom comparator override

  • serializer – custom serializer override

Returns

Context stores current test information.

class testoot.base.TestootContext[source]
abstract ask_canonize() → bool[source]
abstract create_test_result(test_obj: any, canon_obj: any, exc: Exception)testoot.base.TestootTestResult[source]
abstract get_comparator() → Optional[testoot.base.Comparator][source]
abstract get_serializer() → Optional[testoot.base.TestootSerializer][source]
abstract get_storage_name(file_type_hint: testoot.base.FileType, suffix: Optional[str] = None)[source]

Gets name for test

abstract get_storage_name_from_filename(filename: str)[source]
class testoot.base.TestootTestResult[source]
abstract format_diff() → str[source]

Format diff

class testoot.base.Comparator[source]

Abstract type comparator

abstract compare(test_obj: any, canon_obj: any)[source]

Compares objects

FileType is the hint from the serializer to which file type result can be saved for simplifying viewing and merging results.

class testoot.base.FileType(mime: str, override_file_ext: Optional[str] = <class 'testoot.base.FileTypeNoExtension'>)[source]

File type hint for tests.

Parameters
  • mime – required MIME type

  • override_file_ext – override default MIME type extension

__init__(mime: str, override_file_ext: Optional[str] = <class 'testoot.base.FileTypeNoExtension'>) → None
get_file_extension() → Optional[str][source]
mime: str = None
override_file_ext

alias of FileTypeNoExtension

Exceptions

exception testoot.exceptions.UnserializableTypeError[source]

Unserializable type exception