Exemplo n.º 1
0
class PackageSystemTest(unittest.TestCase):   
    @defer.inlineCallbacks 
    def setUp(self):
        self._path_manager = PathManager()
        if not os.path.exists("tmp"):
            os.makedirs("tmp")
        if not os.path.exists("addons"):
            os.makedirs("addons")
            
        self._path_manager._addon_path = "addons"
        self._path_manager.tmpPath = "tmp"
        
        self._persistenceLayer = PersistenceLayer()
        self._packageManager = PackageManager(self._persistenceLayer,self._path_manager)
        yield self._packageManager.setup()
       
    @defer.inlineCallbacks  
    def tearDown(self):
        if os.path.exists("tmp"):
            shutil.rmtree("tmp")
        if os.path.exists("addons"):
            shutil.rmtree("addons")

        yield self._persistenceLayer.tearDown()
        if os.path.exists("pollapli.db"):
            os.remove("pollapli.db")
        self._stop_mock_file_server()

    def test_refresh_packageList(self):
        package1 = Package()
        package2 = Package()
        exp = [package1, package2]
        obs = self._packageManager._packages
        self.assertEquals(obs,exp)    
    
    
    @defer.inlineCallbacks
    def test_setup_package(self):
        """Test for downloading and installing a package"""
        fileServePath = "fileserve"
        os.makedirs(fileServePath)
        self._write_mock_compressedPackage("TestAddOn", fileServePath)
        self._start_mock_file_server(fileServePath)
        
        addOn = Package(type = "addon", name = "TestAddOn", version = "0.0.1",file="TestAddOn.zip")
        addOn.downloadUrl = "http://*****:*****@gmail.com\n")
        f.write("License: GPL\n")
        f.write("Description: UNKNOWN\n")
        f.write("Keywords: web remote control remote monitoring reprap repstrap\n")
        f.write("Platform: UNKNOWN\n")
        f.write("Classifier: Development Status :: 1 - Planning\n")
        f.write("Classifier: Topic :: Utilities\n")
        f.write("Classifier: Natural Language :: English\n")
        f.write("Classifier: Operating System :: OS Independent\n")
        f.write("Classifier: Programming Language :: Python :: 2.6\n")
        f.close()

        
    def _write_mock_packageListFile(self, packageListPath):
         
        f = open(packageListPath,"w")
        f.write('''{
            "packages": [
            {
                "id": "23b0d813-a6b2-461a-88ad-a7020ae66742",
                "type": "addon",
                "name": "Test AddOn",
                "version": "0.0.1",
                "description": "A test Add on",
                "tags": [
                        "test",
                        "something"
                        ],
                "img": "testAddon.png",
                "file": "testAddon-0.0.1.egg",
                "fileHash": "80e157c0f10baef206ee2de03fae7449",
                "downloadUrl" : "http://kaosat.net/pollapli/testAddon-0.0.1.egg"
            },
            {
                "id": "23b0d813-a6b2-461a-88ad-a7020ae64542",
                "type": "update",
                "name": "Test Update",
                "target": "pollapli",
                "targetId": "23b0d813-a6b2-461a-88ad-a7020ae67742",
                "fromVersion" : "0.5.0",
                "toVersion" : "0.6.0",
                "description": "A test Update",
                "tags": [
                        "update",
                        "fish"
                        ],
                "img": "testPackage.png",
                "file": "testPackage-0.2.1.egg",
                "fileHash": "80e157c0f10baef206ee2de03fae7449",
                "downloadUrl" : "http://kaosat.net/pollapli/testUpdate-0.2.1.egg"
            }]}''')
        f.close()
Exemplo n.º 2
0
class PackageSystemTest(unittest.TestCase):
    @defer.inlineCallbacks
    def setUp(self):
        self._path_manager = PathManager()
        if not os.path.exists("tmp"):
            os.makedirs("tmp")
        if not os.path.exists("addons"):
            os.makedirs("addons")

        self._path_manager._addon_path = "addons"
        self._path_manager.tmpPath = "tmp"

        self._persistenceLayer = PersistenceLayer()
        self._packageManager = PackageManager(self._persistenceLayer,
                                              self._path_manager)
        yield self._packageManager.setup()

    @defer.inlineCallbacks
    def tearDown(self):
        if os.path.exists("tmp"):
            shutil.rmtree("tmp")
        if os.path.exists("addons"):
            shutil.rmtree("addons")

        yield self._persistenceLayer.tearDown()
        if os.path.exists("pollapli.db"):
            os.remove("pollapli.db")
        self._stop_mock_file_server()

    def test_refresh_packageList(self):
        package1 = Package()
        package2 = Package()
        exp = [package1, package2]
        obs = self._packageManager._packages
        self.assertEquals(obs, exp)

    @defer.inlineCallbacks
    def test_setup_package(self):
        """Test for downloading and installing a package"""
        fileServePath = "fileserve"
        os.makedirs(fileServePath)
        self._write_mock_compressedPackage("TestAddOn", fileServePath)
        self._start_mock_file_server(fileServePath)

        addOn = Package(type="addon",
                        name="TestAddOn",
                        version="0.0.1",
                        file="TestAddOn.zip")
        addOn.downloadUrl = "http://*****:*****@gmail.com\n")
        f.write("License: GPL\n")
        f.write("Description: UNKNOWN\n")
        f.write(
            "Keywords: web remote control remote monitoring reprap repstrap\n")
        f.write("Platform: UNKNOWN\n")
        f.write("Classifier: Development Status :: 1 - Planning\n")
        f.write("Classifier: Topic :: Utilities\n")
        f.write("Classifier: Natural Language :: English\n")
        f.write("Classifier: Operating System :: OS Independent\n")
        f.write("Classifier: Programming Language :: Python :: 2.6\n")
        f.close()

    def _write_mock_packageListFile(self, packageListPath):

        f = open(packageListPath, "w")
        f.write('''{
            "packages": [
            {
                "id": "23b0d813-a6b2-461a-88ad-a7020ae66742",
                "type": "addon",
                "name": "Test AddOn",
                "version": "0.0.1",
                "description": "A test Add on",
                "tags": [
                        "test",
                        "something"
                        ],
                "img": "testAddon.png",
                "file": "testAddon-0.0.1.egg",
                "fileHash": "80e157c0f10baef206ee2de03fae7449",
                "downloadUrl" : "http://kaosat.net/pollapli/testAddon-0.0.1.egg"
            },
            {
                "id": "23b0d813-a6b2-461a-88ad-a7020ae64542",
                "type": "update",
                "name": "Test Update",
                "target": "pollapli",
                "targetId": "23b0d813-a6b2-461a-88ad-a7020ae67742",
                "fromVersion" : "0.5.0",
                "toVersion" : "0.6.0",
                "description": "A test Update",
                "tags": [
                        "update",
                        "fish"
                        ],
                "img": "testPackage.png",
                "file": "testPackage-0.2.1.egg",
                "fileHash": "80e157c0f10baef206ee2de03fae7449",
                "downloadUrl" : "http://kaosat.net/pollapli/testUpdate-0.2.1.egg"
            }]}''')
        f.close()