Пример #1
0
 def of_str(system_command: str,
            arguments: Sequence[ArgumentAbsStx] = (),
            ) -> 'RawSystemCommandLineAbsStx':
     return RawSystemCommandLineAbsStx(
         str_abs_stx.StringLiteralAbsStx(system_command),
         arguments,
     )
Пример #2
0
class ValueWSymRefsAndVarRefs:
    REFERENCED_VAR_1 = NameAndValue('existing_var_1', '<val of existing 1>')
    REFERENCED_VAR_2 = NameAndValue('existing_var_2', '<val of existing 2>')
    REFERENCED_VAR__ALL = [REFERENCED_VAR_1, REFERENCED_VAR_2]
    VALUE_PATTERN = '{}between{}'
    VALUE_W_VAR_REFS = VALUE_PATTERN.format(
        env_var_ref_syntax(REFERENCED_VAR_1.name),
        env_var_ref_syntax(REFERENCED_VAR_2.name),
    )
    VALUE_WO_VAR_REFS = VALUE_PATTERN.format(
        REFERENCED_VAR_1.value,
        REFERENCED_VAR_2.value,
    )
    POS_OF_END_OF_VAR_REF_1 = end_of_1st_var_ref(VALUE_W_VAR_REFS)
    SYM_REF_PART_1 = StringConstantSymbolContext(
        'VAL_SYM_1',
        VALUE_W_VAR_REFS[:4],
        default_restrictions=asrt_w_str_rend_rest.is__w_str_rendering(),
    )
    CONST_STR_PART_2 = VALUE_W_VAR_REFS[4:(POS_OF_END_OF_VAR_REF_1 + 5)]

    SYM_REF_PART_3 = StringConstantSymbolContext(
        'VAL_SYM_3',
        VALUE_W_VAR_REFS[(POS_OF_END_OF_VAR_REF_1 + 5):],
        default_restrictions=asrt_w_str_rend_rest.is__w_str_rendering(),
    )
    SYMBOL_CONTEXTS = (SYM_REF_PART_1, SYM_REF_PART_3)

    STRING_ABS_STX = str_abs_stx.StringConcatAbsStx([
        SYM_REF_PART_1.abstract_syntax,
        str_abs_stx.StringLiteralAbsStx(CONST_STR_PART_2),
        SYM_REF_PART_3.abstract_syntax,
    ])
Пример #3
0
 def of_str(
     argument: str,
     quoting: Optional[QuoteType] = None,
 ) -> 'ArgumentOfRichStringAbsStx':
     return ArgumentOfRichStringAbsStx(
         _rs_abs_stx.PlainStringAbsStx(
             str_abs_stx.StringLiteralAbsStx(argument, quoting)))
Пример #4
0
 def of_str(system_command: str,
            arguments: Sequence[ArgumentAbsStx] = (),
            ) -> PgmAndArgsAbsStx:
     return ProgramOfSystemCommandLineAbsStx(
         str_abs_stx.StringLiteralAbsStx(system_command),
         arguments,
     )
Пример #5
0
 def test_fail_when_missing_end_quote(self):
     # ARRANGE #
     string_w_missing_end_quote = StringSourceOfStringAbsStx.of_plain(
         str_abs_stx.StringLiteralAbsStx(SOFT_QUOTE_CHAR + 'contents'))
     # ACT & ASSERT #
     parse_check.checker().check_invalid_syntax__abs_stx(
         self, string_w_missing_end_quote)
Пример #6
0
 def test_contents_from_string__w_dst_relativity_variants(self):
     # ARRANGE #
     string_value = str_abs_stx.StringLiteralAbsStx('the_string_value')
     expected_file = fs.File('a-file-name.txt', string_value.value)
     for phase_is_after_act in [False, True]:
         checker = integration_check.checker(phase_is_after_act)
         for rel_opt_conf in ALLOWED_DST_FILE_RELATIVITIES:
             dst_path = rel_opt_conf.path_abs_stx_of_name(
                 expected_file.name)
             instruction_syntax = instr_abs_stx.create_w_explicit_contents(
                 dst_path,
                 string_source_abs_stx.StringSourceOfStringAbsStx.of_plain(
                     string_value),
             )
             with self.subTest(
                     relativity_option_string=rel_opt_conf.option_string,
                     phase_is_after_act=phase_is_after_act):
                 # ACT & ASSERT #
                 checker.check__abs_stx__std_layouts_and_source_variants(
                     self, instruction_syntax,
                     Arrangement.phase_agnostic(tcds=TcdsArrangement(
                         pre_population_action=
                         SETUP_CWD_INSIDE_SDS_BUT_NOT_A_SDS_DIR__PLAIN, ),
                                                ),
                     MultiSourceExpectation.phase_agnostic(
                         main_result=IS_SUCCESS,
                         side_effects_on_hds=f_asrt.dir_is_empty(),
                         symbol_usages=asrt.is_empty_sequence,
                         main_side_effects_on_sds=
                         non_hds_dir_contains_exactly(
                             rel_opt_conf.root_dir__non_hds,
                             fs.DirContents([expected_file])),
                     ))
Пример #7
0
def stdin_cases() -> Sequence[NameAndValue[StringSourceAbsStx]]:
    return [
        NameAndValue(
            'string with missing end quote',
            StringSourceOfStringAbsStx.of_plain(
                str_abs_stx.StringLiteralAbsStx(
                    QUOTE_CHAR_FOR_TYPE[QuoteType.SOFT] + 'after quote'))),
    ]
Пример #8
0
 def test_fail_when_missing_end_end_paren(self):
     # ARRANGE #
     valid_string = str_abs_stx.StringLiteralAbsStx('contents')
     missing_end_paren = CustomAbsStx(
         TokenSequence.concat([
             TokenSequence.singleton('('),
             valid_string.tokenization(),
         ]))
     # ACT & ASSERT #
     parse_check.checker().check_invalid_syntax__abs_stx(
         self, OptionallyOnNewLine(missing_end_paren))
Пример #9
0
 def singleton_string__str(element: str,
                           quoting: Optional[QuoteType] = None,
                           ) -> 'NonEmptyListAbsStx':
     return NonEmptyListAbsStx.singleton_string(
         str_abs_stx.StringLiteralAbsStx(element, quoting)
     )
Пример #10
0
 def of_str(value: str,
            quoting: Optional[QuoteType] = None,
            ) -> 'ListElementStringAbsStx':
     return ListElementStringAbsStx(
         str_abs_stx.StringLiteralAbsStx(value, quoting)
     )
Пример #11
0
 def symbol_ref_syntax_2_contents_arguments(
         syntax: str) -> StringSourceAbsStx:
     string_value = string_value_template.format(symbol=syntax)
     return StringSourceOfStringAbsStx.of_plain(
         str_abs_stx.StringLiteralAbsStx(string_value, QuoteType.SOFT))
Пример #12
0
 def of_plain_string(command_line: str) -> 'ProgramOfShellCommandLineAbsStx':
     return ProgramOfShellCommandLineAbsStx(str_abs_stx.StringLiteralAbsStx(command_line))
Пример #13
0
 def of_str(
         s: str,
         quoting: Optional[QuoteType] = None
 ) -> 'StringSourceOfStringAbsStx':
     return StringSourceOfStringAbsStx.of_plain(
         str_abs_stx.StringLiteralAbsStx(s, quoting))