def test_macro_macro_assemble_save_as(self, tmpdir):
     newname = random_string()
     m = GetAsset('macro/MVMacro1.xml')
     assert m is not None
     assert m.xmlfile == 'macro/MVMacro1.xml'
     m.assemble(save_name=newname)
     assert os.path.exists(newname + '.mtmacro')
 def test_asset_project4_assemble(self, tmpdir):
     # project 4 has a macro2 and a text with a name
     m = GetAsset(self.source[3]['filename'])
     assert m is not None
     m.assemble()
     assert os.path.exists(self.source[3]['textfile']), f'{glob("*")=}\n\n{self.source=}'
     assert os.path.exists('Minimum+Viable+Macro+2.' + tagset.macro.ext)
 def test_macro_assemble_macro2(self, tmpdir):
     saveplus = 'Minimum+Viable+Macro+2'
     m = GetAsset('macro/MVMacro2.xml')
     assert m is not None
     m.assemble()
     assert m.best_name_escaped() == saveplus
     assert os.path.exists(saveplus + '.mtmacro'), f'{saveplus+".mtmacro"} does not exist as expected'
 def test_properties_asset_assemble(self, tmpdir):
     newname = random_string()
     newfilename = newname + '.' + tagset.properties.ext
     m = GetAsset('MVProps/content.xml')
     assert m is not None
     m.assemble(save_name=newname)
     assert os.path.exists(newfilename), f'{newfilename} was not found'
Esempio n. 5
0
def step_impl(context):  # noqa: F811
    m = GetAsset(context.macrosrc)
    m.root.command = objectify.StringElement(git_comment_str + '\n' +
                                             m.root.command.text)
    context.macroname = random_string()
    m.assemble(context.macroname)
    assert os.path.exists(
        context.macrofile), f"{context.macrofile} not found in '{os.getcwd()}'"
 def test_asset_project1_assemble(self, tmpdir):
     print(f'in test_asset_project1_assemble with {self.source}')
     m = GetAsset(self.source[0]['filename'])
     assert m is not None
     m.assemble()
     assert os.path.exists('MVToken.' + tagset.token.ext)
     assert os.path.exists('MVProps.' + tagset.properties.ext)
     assert os.path.exists(self.source[0]['macrosetname'] + '.' + tagset.macroset.ext)
 def test_properties_asset_extract(self, tmpdir):
     newname = random_string()
     m = GetAsset('MVProps/content.xml')
     assert m is not None
     m.extract(save_name=newname)
     for filename in 'content.xml', 'properties.xml':
         file_exists = os.path.join(newname, filename)
         assert os.path.exists(file_exists), f'{file_exists} does not exist'
 def test_macro_assemble_macro1(self, tmpdir):
     # saveperc = 'Minimum%20Viable%20Macro%201'
     # savepath = 'Minimum%2BViable%2BMacro%2B1'
     saveplus = 'Minimum+Viable+Macro+1'
     m = GetAsset('macro/MVMacro1.xml')
     assert m is not None
     m.assemble()
     assert m.best_name_escaped() == saveplus
     assert os.path.exists(saveplus + '.mtmacro'), f'{saveplus + ".mtmacro"} does not exist as expected'
 def test_macro_macroset_append_object(self, tmpdir):
     m = GetAsset('macro/MVMacro1.xml')
     assert m is not None
     o = GetAsset('MVMacroSet.mtmacset')
     assert o is not None
     o.append(m)
     assert o is not None
     # see if o now has two copies of m
     assert len(o.root.findall('./' + tagset.macro.tag)) == 3
 def test_asset_project3_assemble(self, tmpdir):
     # p3 has macroset, project
     # p2 has macro, text
     m = GetAsset(self.source[2]['filename'])
     assert m is not None
     m.assemble()
     assert os.path.exists(self.source[2]['macrosetname'] + '.' + tagset.macroset.ext), f'{glob("*")=}'
     # These files come from Project2
     assert os.path.exists('README.txt')
     assert os.path.exists('Minimum+Viable+Macro+1.' + tagset.macro.ext)
Esempio n. 11
0
 def test_asset_token_assemble_macroPropertiesMap(self, tmpdir):
     tokenname = 'MVToken'
     m = GetAsset(tokenname)
     assert m is not None
     m.assemble()
     n = GetAsset(tokenname + '.rptok')
     assert n is not None
     assert n.xml.find('macroPropertiesMap/entry/macro') is None
     assert n.xml.find('macroPropertiesMap/entry/' +
                       tagset.macro.tag) is not None
Esempio n. 12
0
 def test_asset_token_assemble(self, tmpdir):
     m = GetAsset('MVToken')
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.zipfile is None
     # assert False, f'{m.whence=}'
     # assert False, f'{m.dirname=}'
     m.assemble()
     assert os.path.exists('MVToken.rptok')
 def test_macro_macroset_assemble_save_as(self, tmpdir):
     newname = random_string()
     newfilename = newname + '.' + tagset.macroset.ext
     assert os.path.exists('MVMacroSet.mtmacset')
     m = GetAsset('MVMacroSet.mtmacset')
     assert m is not None
     assert m.best_name(newname) == newname
     # assert False, f'{m.xmlfile} is m.xmlfile'
     # assert False, f'{m.dirname} is m.dirname'
     m.assemble(save_name=newname)
     assert os.path.exists(newfilename), f'{newfilename} does not exist'
Esempio n. 14
0
 def test_properties_asset_from_dir_equals_xml(self, tmpdir):
     m = GetAsset('MVProps/content.xml')
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.tag == tagset.properties.tag
     n = GetAsset('MVProps')
     assert n is not None
     assert n.fromdir is not None
     assert n.xmlfile is not None
     assert n.tag == tagset.properties.tag
     assert tostring(m.root) == tostring(n.root)
 def test_asset_with_macro_command(self, tmpdir):
     fn = os.path.join(tmpdir, 'Junk.command')
     with open(fn, 'w') as f:
         f.write('')
     fn = os.path.join(tmpdir, 'Junk.xml')
     with open(fn, 'w') as f:
         f.write('<' + tagset.macro.tag + '>')
         f.write('  <label>Test</label>')
         f.write('</' + tagset.macro.tag + '>')
     m = GetAsset(fn)
     assert m.is_macro is True
     assert m.is_project is False
     assert m.is_macroset is False
     assert m.is_token is False
     assert m.is_properties is False
     m.assemble()
     assert os.path.exists('./Test.mtmacro')
     os.remove('./Test.mtmacro')
     m = GetAsset(os.path.join(tmpdir, 'Junk.command'))
     assert m.is_macro is True
     assert m.is_project is False
     assert m.is_macroset is False
     assert m.is_token is False
     assert m.is_properties is False
     m.assemble()
     assert os.path.exists('./Test.mtmacro')
     os.remove('./Test.mtmacro')
Esempio n. 16
0
    def test_asset_with_token(self, tmpdir):
        dn = os.path.join(tmpdir, 'MTToken')
        os.makedirs(dn, exist_ok=True)
        fn = os.path.join(dn, 'content.xml')
        with open(fn, 'w') as f:
            f.write('<' + tagset.token.tag + '>')
            f.write('<name>Test-MTToken</name>')
            f.write('</' + tagset.token.tag + '>')
        m = GetAsset(dn)
        assert m.is_properties is False
        assert m.is_project is False
        assert m.is_macro is False
        assert m.is_macroset is False
        assert m.is_token is True
        m.assemble()
        assert os.path.exists('MTToken.rptok')
        os.remove('MTToken.rptok')

        m = GetAsset(fn)
        assert m.is_properties is False
        assert m.is_project is False
        assert m.is_macro is False
        assert m.is_macroset is False
        assert m.is_token is True
        m.assemble()
        assert os.path.exists('MTToken.rptok')
Esempio n. 17
0
def step_impl(context):  # noqa: F811
    assert 'token' in context.source
    assert 'src' in context.source['token']
    assert len(context.source['token']['src']) > 1
    context.tokenpath = context.source['token']['src'][1]
    context.tokenname = 'Lib:' + random_string()
    m = GetAsset(context.tokenpath)
    assert m is not None
    m.root.name = context.tokenname
    filename = context.tokenname.replace(':', '-')
    m.assemble(filename)
    context.tokenfile = filename + '.' + tagset.token.ext
    assert os.path.exists(
        context.tokenfile
    ), f'{context.tokenfile} does not exist in \'{os.getcwd()}\''
 def test_asset_project3(self, tmpdir):
     m = GetAsset(self.source[2]['filename'])
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.zipfile is None
     assert m.xml.find('macroset') is not None
Esempio n. 19
0
 def test_asset_with_non_xml_file(self, tmpdir):
     fn = os.path.join(tmpdir, 'Junk.xml')
     with open(fn, 'w') as f:
         f.write('')
     with pytest.raises(XMLSyntaxError):
         m = GetAsset(fn)
         assert m is not None
 def test_macro_with_macro2(self, tmpdir):
     m = GetAsset('macro/MVMacro2.xml')
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.zipfile is None
     assert m.tag == tagset.macro.tag
Esempio n. 21
0
 def test_token_extract(self, token_file, tmpdir):
     tokfile = os.path.join(self.origdir, token_file)
     tokname = os.path.basename(os.path.splitext(token_file)[0])
     assert os.path.exists(tokfile), f'{tokfile} does not exist'
     tok = GetAsset(tokfile)
     assert tok is not None
     tok.extract()
     assert os.path.exists(tokname), f'{tokname} does not exist'
     assert os.path.isdir(tokname), f'{tokname} is not a directory'
     assert os.path.exists(os.path.join(
         tokname, 'content.xml')), f'content.xml not in {tokname}'
     assert os.path.exists(os.path.join(
         tokname, 'properties.xml')), f'properties.xml not in {tokname}'
     assert os.path.exists(os.path.join(
         tokname, 'thumbnail')), f'thumbnail not in {tokname}'
     assert os.path.exists(os.path.join(
         tokname, 'thumbnail_large')), f'thumbnail_large not in {tokname}'
Esempio n. 22
0
 def test_asset_token(self, tmpdir):
     m = GetAsset('MVToken/content.xml')
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.zipfile is None
     assert m.dirname is not None
     assert m.tag == tagset.token.tag
 def test_macro_with_command_file(self, tmpdir):
     target = 'macro/MVMacro1.command'
     assert os.path.exists(target)
     m = GetAsset(target)
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.zipfile is None
     assert m.tag == tagset.macro.tag
 def test_asset_project2(self, tmpdir):
     log.info(f'project[1] named {self.source[1]["name"]=} created in {self.source[1]["filename"]=}')
     m = GetAsset(self.source[1]['filename'])
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None
     assert m.zipfile is None
     assert m.xml.find('macro') is not None
     assert m.xml.find('text') is not None
Esempio n. 25
0
 def test_properties_append_MTProperties(self, tmpdir):
     newname = random_string()
     newfilename = newname + '.' + tagset.properties.ext
     m = GetAsset('MVProps/content.xml')
     assert m is not None
     m.append(GetAsset('MVProps2'), 'tokenTypeMap',
              'entry[string="Second"]')
     m.assemble(save_name=newname)
     assert os.path.exists(newfilename)
     n = GetAsset(newfilename)
     assert n.xml.find('tokenTypeMap/entry[string="Second"]') is not None
 def test_macro_extract_git_sha_remove(self, tmpdir):
     macroname = random_string()
     m = GetAsset('macro/MVMacro1')
     assert m is not None
     m.root.label = objectify.StringElement(macroname)
     m.assemble(save_name=macroname)
     m = GetAsset(macroname + '.' + tagset.macro.ext)
     assert m is not None
     assert m.is_macro
     m.extract()
     assert os.path.exists(f'macro/{macroname}.xml'), f'expected macro/{macroname}.xml in {glob("**/*")=}'
     assert os.path.exists(f'macro/{macroname}.command'), f'{glob("**/*")=}'
Esempio n. 27
0
 def test_asset_with_distant_properties(self, tmpdir):
     os.chdir('/tmp')
     dn = os.path.join(tmpdir, 'MTProps')
     os.makedirs(dn, exist_ok=True)
     fn = os.path.join(dn, 'content.xml')
     log.info(f'creating empty properties at {fn}')
     with open(fn, 'w') as f:
         f.write('<' + tagset.properties.tag + '>')
         f.write('</' + tagset.properties.tag + '>')
     log.info(f'opening asset at {fn}')
     m = GetAsset(fn)
     assert m.is_properties is True
     assert m.is_project is False
     assert m.is_macro is False
     assert m.is_macroset is False
     assert m.is_token is False
     os.makedirs('output', exist_ok=True)
     m.assemble()
     assert os.path.exists('MTProps.mtprops')
     os.remove('MTProps.mtprops')
Esempio n. 28
0
 def test_asset_token_save_to(self, tmpdir):
     target = 'NewMVToken'
     targetAsset = GetAsset('MVToken')
     targetAsset.assemble()
     assert os.path.exists('MVToken.rptok')
     m = GetAsset('MVToken.rptok')
     assert m is not None
     # m.extract(save_name=target)
     assert m.output_dir == '.'
     assert m.save_to(target) == './' + target
Esempio n. 29
0
 def test_token_extract_sha_gmname_remove(self, tmpdir):
     tokenname = 'Lib:' + random_string()
     tokennameq = tokenname.replace(':', '-')
     m = GetAsset('MVToken')
     assert m is not None
     m.assemble(save_name=tokennameq)
     m = GetAsset(tokennameq + '.' + tagset.token.ext)
     assert m is not None
     m.extract()
     assert os.path.exists(tokennameq)
     assert os.path.isdir(tokennameq)
     assert os.path.exists(os.path.join(tokennameq, 'content.xml'))
     xml = objectify.parse(os.path.join(tokennameq, 'content.xml'))
     assert 'gmName' not in [x.tag for x in xml.getroot().iterchildren()]
Esempio n. 30
0
 def test_asset_token_extract_with_name(self, tmpdir):
     tdir = 'MVToken'
     tfilename = tdir + '.rptok'
     target = 'NewMVToken'
     targetAsset = GetAsset(tdir)
     targetAsset.assemble()
     assert os.path.exists(tfilename), f'{tfilename} does not exist'
     m = GetAsset(tfilename)
     # assert False, m.save_to(None, target)
     assert m is not None
     assert m.fromdir is not None
     assert m.xmlfile is not None  # should this be None?
     assert m.zipfile is not None
     m.extract(save_name=target)
     for asset in 'properties.xml', 'content.xml', 'thumbnail', 'thumbnail_large', '1d20.command', '1d20.xml':
         assert os.path.exists(os.path.join(target, asset))