示例#1
0
 def export_xml(cls):
     from mosaicode.system import System as System
     System()
     ports = System.get_ports()
     for port in ports:
         print "Exporting port " + port
         PortPersistence.save(ports[port])
    def test_save_xml(self):

        # Second condition
        file_name = "/tmp/" + self.code_template.type + ".xml"
        result = CodeTemplatePersistence.save_xml(self.code_template,
                                                  file_name)
        #        self.assertEquals(result, False)

        # Second condition
        port = Port()
        port.label = "test"
        PortPersistence.save_xml(port, "/tmp/")
        file_name = "/tmp/" + port.type + ".xml"
        result = CodeTemplatePersistence.load_xml(file_name)
        #        self.assertNotEquals(result, True)
        #        os.remove(file_name)

        CodeTemplatePersistence.save_xml(self.code_template, "/tmp/")
        file_name = "/tmp/" + self.code_template.type + ".xml"
        result = CodeTemplatePersistence.load_xml(file_name)
        self.assertEquals(result, None)
        #        os.remove(file_name)

        self.code_template.name = "Test"
        CodeTemplatePersistence.save_xml(self.code_template, "/tmp/")
        file_name = "/tmp/" + self.code_template.type + ".xml"
        result = CodeTemplatePersistence.load_xml(file_name)
示例#3
0
 def add_port(cls, port):
     # first, save it
     from mosaicode.system import System as System
     System()
     path = System.get_user_dir() + "/extensions/"
     path = path + port.language + "/ports/"
     PortPersistence.save_xml(port, path)
示例#4
0
    def test_load(self):
        # First condition
        result = CodeTemplatePersistence.load_xml("This file does not exist")
        self.assertEquals(result, None)

        # Second condition
        port = Port()
        port.label = "test"
        PortPersistence.save_xml(port, "/tmp/")
        file_name = "/tmp/" + port.type + ".xml"
        result = CodeTemplatePersistence.load_xml(file_name)
        self.assertNotEquals(result, True)
        os.remove(file_name)

        CodeTemplatePersistence.save_xml(self.code_template, "/tmp/")
        file_name = "/tmp/" + self.code_template.type + ".xml"
        result = CodeTemplatePersistence.load_xml(file_name)
        self.assertEquals(result, None)
        os.remove(file_name)

        self.code_template.name = "Test"
        CodeTemplatePersistence.save_xml(self.code_template, "/tmp/")
        file_name = "/tmp/" + self.code_template.type + ".xml"
        result = CodeTemplatePersistence.load_xml(file_name)
        self.assertEquals(result.equals(self.code_template), True)
        os.remove(file_name)
 def test_load_wrong_file(self):
     port = Port()
     port.hint = "test"
     PortPersistence.save_xml(port, path="/tmp/")
     file_name = "/tmp/" + port.hint + ".xml"
     result = CodeTemplatePersistence.load_xml(file_name)
     self.assertNotEquals(result, True)
     os.remove(file_name)
示例#6
0
 def export_python(cls):
     from mosaicode.system import System as System
     System()
     ports = System.get_ports()
     for port in ports:
         path = System.get_user_dir() + "/extensions/"
         path = path + port.language + "/ports/"
         PortPersistence.save_python(ports[port])
示例#7
0
 def export_xml(cls):
     from mosaicode.system import System as System
     System()
     ports = System.get_ports()
     for key in ports:
         path = System.get_user_dir()
         path = os.path.join(path, 'extensions', ports[key].language,
                             'ports')
         PortPersistence.save_xml(ports[key], path)
示例#8
0
    def load(cls, file_name):
        """
        This method loads the port from XML file.

        Returns:

            * **Types** (:class:`boolean<boolean>`)
        """
        PortPersistence.load(file_name)
class TestPortPersistence(TestCase):
    def setUp(self):
        """Do the test basic setup."""
        self.portpersistence = PortPersistence()

    # ----------------------------------------------------------------------x
    def test_load(self):

        # TESTANDO COM NOME DE ARQUIVO = None
        file_name = ""
        self.assertIsNone(self.portpersistence.load(file_name))

        # TESTANDO COM NOME DE ARQUIVO INEXISTENTE
        file_name = "/home/lucas/mosaicode/extensions/teste.py"
        self.assertIsNone(self.portpersistence.load(file_name))

        # TESTANDO COM NOME DE ARQUIVO FALSO (INCOMPATÍVEL)
        file_name = "/home/lucas/mosaicode/extensions/a.py"
        self.assertIsNone(self.portpersistence.load(file_name))

        # TESTANDO COM NOME DE ARQUIVO FALSO DE XML
        file_name = "/home/lucas/mosaicode/extensions/mosaicode.model.portmodel.xml"
        self.assertIsNone(self.portpersistence.load(file_name))

        # TESTANDO COM ARQUIVO COM port.type = ""
        file_name = "/home/lucas/mosaicode/extensions/mosaicode.model.port_teste.xml"
        self.assertIsNone(self.portpersistence.load(file_name))

        # TESTANDO COM NOME DE ARQUIVO VERDADEIRO
        file_name = "/home/lucas/mosaicode/extensions/ports/mosaicode.model.port.xml"
        self.assertIsNotNone(self.portpersistence.load(file_name))

    # ----------------------------------------------------------------------x
    def test_save(self):

        port = Port()
        self.assertTrue(self.portpersistence.save(port))

        port.type = "teste_portpersistence"
        self.assertTrue(self.portpersistence.save(port))

        # NÃO TRABALHA COM None
        # port = None
        # self.assertFalse(self.portpersistence.save(port))

    # ----------------------------------------------------------------------x
    def test_save_python(self):

        port = Port()
        self.assertTrue(self.portpersistence.save_python(port))

        port.type = "teste_portpersistence"
        self.assertTrue(self.portpersistence.save_python(port))
    def test_load_save(self):
        port = Port()
        port.label = "test"

        PortPersistence.save_python(port, "/tmp/")
        file_name = "/tmp/" + port.label.lower().replace(' ', '_') + ".py"
        os.remove(file_name)

        PortPersistence.save_xml(port, "/tmp/")
        file_name = "/tmp/" + port.type + ".xml"

        result = PortPersistence.load_xml(file_name)
    def test_load_wrong_diagram(self):
        port = Port()
        port.hint = "test"
        PortPersistence.save_xml(port, path="/tmp/")
        file_name = "/tmp/" + port.hint + ".xml"
        result = DiagramPersistence.load(file_name)
        self.assertNotEquals(result, True)

        diagram = self.create_full_diagram()
        diagram.file_name = file_name
        result = DiagramPersistence.load(diagram)
        self.assertNotEquals(result, True)
        os.remove(file_name)
    def test_load_save(self):
        port = Port()
        port.label = "test"
        port.hint = "test"

        result = PortPersistence.load_xml("/this file does not exist")
        self.assertEquals(result, None)

        result = PortPersistence.save_xml(port, "/etc/")
        self.assertEquals(result, False)

        result = PortPersistence.save_xml(port, "/impossible to create")
        self.assertEquals(result, False)

        result = PortPersistence.save_xml(port, "/tmp/")
        self.assertEquals(result, True)

        file_name = "/tmp/" + port.hint + ".xml"
        result = PortPersistence.load_xml(file_name)
        os.remove(file_name)

        port.type = ""
        result = PortPersistence.save_xml(port, "/tmp/")
        file_name = "/tmp/" + port.hint + ".xml"
        result = PortPersistence.load_xml(file_name)
        self.assertEquals(result, None)
        os.remove(file_name)

        code_template = self.create_code_template()
        CodeTemplatePersistence.save_xml(code_template, "/tmp/")
        file_name = "/tmp/" + code_template.name + ".xml"
        result = PortPersistence.load_xml(file_name)
        os.remove(file_name)
示例#13
0
 def add_port(cls, port):
     # first, save it
     PortPersistence.save(port)
示例#14
0
 def export_python(cls):
     from mosaicode.system import System as System
     System()
     for port in System.ports:
         print "Exporting port " + port
         PortPersistence.save_python(System.ports[port])
示例#15
0
 def add_port(cls, port):
     from mosaicode.system import System as System
     System()
     path = os.path.join(System.get_user_dir(), "extensions")
     path = os.path.join(path, port.language, "ports")
     PortPersistence.save(port, path)
示例#16
0
    def export_extensions(self):
    
        from mosaicode.system import System as System
        System()

        result = True
        folder = "extension-" + datetime.datetime.now().strftime("%Y-%m-%d")

        # Export ports
        ports = System.get_ports()
        for key in ports:
            path = System.get_user_dir()
            path = os.path.join(path, folder, ports[key].language, 'ports')
            result = result and PortPersistence.save(ports[key], path)
        # Export Blocks
        blocks = System.get_blocks()
        result = True
        for key in blocks:
            path = System.get_user_dir()
            path = os.path.join(path,
                                folder,
                                blocks[key].language,
                                'blocks',
                                blocks[key].extension,
                                blocks[key].group)
            result = result and BlockPersistence.save(blocks[key], path)
        # Export Code Templates
        code_templates = System.get_code_templates()
        result = True
        for key in code_templates:
            path = System.get_user_dir()
            path = os.path.join(path,
                                folder,
                                code_templates[key].language,
                                'codetemplates')
            result = result and CodeTemplatePersistence.save(
                    code_templates[key], path)
        # Export examples
        path = System.get_user_dir()
        path = os.path.join(path, "extensions")
        examples = System.get_examples()
        for example in examples:
            relpath = os.path.relpath(example, path)
            path = System.get_user_dir()
            path = os.path.join(path, folder, relpath)
            os.makedirs(os.path.dirname(path), exist_ok=True)
            shutil.copy2(example, path)

        # Create a zip file to the extension
        path = System.get_user_dir()
        path = os.path.join(path, folder+".zip")
        zip_file = zipfile.ZipFile(path, 'w')

        path = System.get_user_dir()
        path = os.path.join(path, folder)

        for folderName, subfolders, filenames in os.walk(path):
            for filename in filenames:
                filePath = os.path.join(folderName, filename)
                #create complete filepath of file in directory
                # Add file to zip
                zip_file.write(filePath, os.path.relpath(filePath, path))
        zip_file.close()

        path = System.get_user_dir()
        path = os.path.join(path, folder)
        shutil.rmtree(path)

        # create a publish file
        filename = "resource.txt"
        path = System.get_user_dir()
        path = os.path.join(path, filename)
        f = open(path, "w")
        f.write(folder + ".zip")
        f.close()

        if result:
            MessageDialog(
                    "Success",
                     "File " + folder + ".zip created successfully!",
                     self.main_window).run()
        else:
            MessageDialog(
                    "Error",
                    "Could not export extension",
                    self.main_window).run()
        return result
示例#17
0
 def setUp(self):
     """Do the test basic setup."""
     self.portpersistence = PortPersistence()
示例#18
0
 def export_python(cls):
     from mosaicode.system import System as System
     System()
     ports = System.get_ports()
     for port in ports:
         PortPersistence.save_python(ports[port])
示例#19
0
 def add_port(cls, port):
     # first, save it
     PortPersistence.save(port)
     # Then add it to system
     from mosaicode.system import System
     System.ports[port.type] = port