コード例 #1
0
ファイル: parse_arguments.py プロジェクト: emilkarlen/exactly
def is_single_validator_with(expectations: Sequence[NameAndValue[ValueAssertion[PreOrPostSdsValidator]]]
                             ) -> ValueAssertion[Sequence[PreOrPostSdsValidator]]:
    return asrt.and_([
        asrt.len_equals(1),
        asrt.on_transformed(pre_or_post_validation.all_of,
                            asrt.all_named(expectations))
    ])
コード例 #2
0
 def is_section_item(self,
                     put: unittest.TestCase,
                     value,
                     message_builder: asrt.MessageBuilder = asrt.MessageBuilder()):
     asrt.IsInstance(doc.SectionItem).apply(put, value, message_builder)
     assert isinstance(value, doc.SectionItem)
     asrt.sub_component('header',
                        doc.SectionItem.header.fget,
                        is_text
                        ).apply(put, value, message_builder)
     asrt.sub_component('tags',
                        doc.SectionItem.tags.fget,
                        asrt.is_instance_with(set,
                                              asrt.on_transformed(list,
                                                                  asrt.is_sequence_of(asrt.is_instance(str)))
                                              )
                        ).apply(put, value, message_builder)
     asrt.sub_component('target',
                        doc.SectionItem.target.fget,
                        asrt.is_instance(core.CrossReferenceTarget)),
     if isinstance(value, doc.Article):
         is_article_contents.apply(put, value.contents,
                                   message_builder.for_sub_component('article_contents'))
     elif isinstance(value, doc.Section):
         is_section_contents.apply(put, value.contents,
                                   message_builder.for_sub_component('section_contents'))
     else:
         asrt.fail('Not a {}: {}'.format(str(doc.SectionItem), str(value)))
コード例 #3
0
ファイル: parse_arguments.py プロジェクト: emilkarlen/exactly
def is_single_validator_with(
    expectations: Sequence[NameAndValue[Assertion[DdvValidator]]]
) -> Assertion[Sequence[DdvValidator]]:
    return asrt.and_([
        asrt.len_equals(1),
        asrt.on_transformed(ddv_validators.all_of,
                            asrt.all_named(expectations))
    ])
コード例 #4
0
def matches_document(
    expected: Mapping[str, Sequence[Assertion[model.SectionContentElement]]]
) -> Assertion[model.Document]:
    expected_section_2_assertion = {
        section: asrt.matches_sequence(expected[section])
        for section in expected.keys()
    }

    assertion_on_dict = asrt.matches_mapping(expected_section_2_assertion)
    return asrt.on_transformed(doc_to_mapping, assertion_on_dict)
コード例 #5
0
ファイル: sdv_assertions.py プロジェクト: emilkarlen/exactly
    def test_symbol_table_is_passed_to_resolve_method(self):
        # ARRANGE #
        symbol_name = 'symbol_name'
        symbol_value = 'the symbol value'
        string_sdv = _StringSdvTestImpl(
            resolve_string_via_symbol_table(symbol_name))

        symbol_table = StringConstantSymbolContext(symbol_name,
                                                   symbol_value).symbol_table
        is_expected_resolved_value = asrt.on_transformed(
            _resolve_ddv, asrt.equals(symbol_value))
        assertion = sut.matches_sdv(asrt.anything_goes(),
                                    asrt.anything_goes(),
                                    is_expected_resolved_value,
                                    symbols=symbol_table)
        # ACT & ASSERT #
        assertion.apply_without_message(self, string_sdv)
コード例 #6
0
def matches_resolver_of_logic_type(resolver_type: type,
                                   logic_value_type: LogicValueType,
                                   value_type: ValueType,
                                   resolved_value: ValueAssertion = asrt.anything_goes(),
                                   references: ValueAssertion[Sequence[SymbolReference]] = asrt.is_empty_sequence,
                                   symbols: symbol_table.SymbolTable = None) -> ValueAssertion[Any]:
    symbols = symbol_table.symbol_table_from_none_or_value(symbols)

    def resolve_value(resolver: LogicValueResolver) -> LineMatcher:
        return resolver.resolve(symbols)

    return asrt.is_instance_with(resolver_type,
                                 asrt.and_([
                                     is_resolver_of_logic_type(logic_value_type,
                                                               value_type),

                                     asrt.on_transformed(resolve_value,
                                                         resolved_value),

                                     asrt.sub_component('references',
                                                        resolver_structure.get_references,
                                                        references),
                                 ]))
コード例 #7
0
ファイル: sds_assertions.py プロジェクト: emilkarlen/exactly
def sds_root_dir_does_not_exist() -> ValueAssertion[SandboxDirectoryStructure]:
    return asrt.on_transformed(lambda sds: sds.root_dir,
                               file_does_not_exist())
コード例 #8
0
ファイル: sds_assertions.py プロジェクト: emilkarlen/exactly
def sds_root_dir_exists_and_has_sds_dirs() -> ValueAssertion[SandboxDirectoryStructure]:
    return asrt.on_transformed(lambda sds: str(sds.root_dir),
                               is_sds_root_dir())
コード例 #9
0
def rendered_text_matches(text: Assertion[str]) -> Assertion[TextRenderer]:
    return asrt_renderer.is_renderer_of_major_blocks(
        asrt.on_transformed(render_to_str.print_major_blocks, text))
コード例 #10
0
ファイル: sds_assertions.py プロジェクト: emilkarlen/exactly
def sds_root_dir_does_not_exist() -> Assertion[SandboxDs]:
    return asrt.on_transformed(lambda sds: sds.root_dir,
                               file_does_not_exist())
コード例 #11
0
ファイル: sds_assertions.py プロジェクト: emilkarlen/exactly
def sds_root_dir_exists_and_has_sds_dirs() -> Assertion[SandboxDs]:
    return asrt.on_transformed(lambda sds: str(sds.root_dir),
                               is_sds_root_dir())
コード例 #12
0
def first_line(assertion: Assertion[str]) -> Assertion[str]:
    return asrt.on_transformed(get_first_line, assertion)
コード例 #13
0
ファイル: file_assertions.py プロジェクト: emilkarlen/exactly
def path_as_str(path: Assertion[str]) -> Assertion[pathlib.Path]:
    return asrt.on_transformed(
        str,
        path,
    )
コード例 #14
0
ファイル: file_assertions.py プロジェクト: emilkarlen/exactly
def str_as_path(path: Assertion[pathlib.Path]) -> Assertion[str]:
    return asrt.on_transformed(
        pathlib.Path,
        path,
    )
コード例 #15
0
def file_names_equals(
    expected: Set[PurePosixPath]
) -> Assertion[Mapping[PurePosixPath, Optional[FileMatcher]]]:
    return asrt.on_transformed(lambda d: d.keys(), asrt.equals(expected))