예제 #1
0
    def testMigration3to4(self):
        testCfg = {
            "main": {
                "configVersion": 3,
                u"baseUrl": u"https://www.somedomain.com/nzbhydra"
            },
            "downloader": {
                "nzbAddingType": "redirect"
            }
        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = u"https://www.somedomain.com/nzbhydra"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(cfg["main"]["externalUrl"],
                         "https://www.somedomain.com/nzbhydra",
                         json.dumps(cfg))
        self.assertEqual(cfg["main"]["urlBase"], "/nzbhydra")

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = u"https://127.0.0.1/nzbhydra/"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(cfg["main"]["externalUrl"],
                         "https://127.0.0.1/nzbhydra")
        self.assertEqual(cfg["main"]["urlBase"], "/nzbhydra")

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = u"https://www.somedomain.com/"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(cfg["main"]["externalUrl"],
                         "https://www.somedomain.com")
        self.assertIsNone(cfg["main"]["urlBase"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = None
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertIsNone(cfg["main"]["externalUrl"])
        self.assertIsNone(cfg["main"]["urlBase"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["nzbAddingType"] = "direct"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual("redirect", cfg["downloader"]["nzbAddingType"])
예제 #2
0
    def testMigration3to4(self):
        testCfg = {
            "main":
                {
                    "configVersion": 3,
                    u"baseUrl": u"https://www.somedomain.com/nzbhydra"

                },
            "downloader": {
                "nzbAddingType": "redirect"
            }}

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = u"https://www.somedomain.com/nzbhydra"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(cfg["main"]["externalUrl"], "https://www.somedomain.com/nzbhydra", json.dumps(cfg))
        self.assertEqual(cfg["main"]["urlBase"], "/nzbhydra")

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = u"https://127.0.0.1/nzbhydra/"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(cfg["main"]["externalUrl"], "https://127.0.0.1/nzbhydra")
        self.assertEqual(cfg["main"]["urlBase"], "/nzbhydra")

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = u"https://www.somedomain.com/"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(cfg["main"]["externalUrl"], "https://www.somedomain.com")
        self.assertIsNone(cfg["main"]["urlBase"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["baseUrl"] = None
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertIsNone(cfg["main"]["externalUrl"])
        self.assertIsNone(cfg["main"]["urlBase"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = testCfg
            cfg["main"]["nzbAddingType"] = "direct"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual("redirect", cfg["downloader"]["nzbAddingType"])
예제 #3
0
    def testMigration12to13(self):
        testCfg = {
            "main": {
                "configVersion": 12,
            },
            "indexers": {
                "binsearch": {},
                "nzbclub": {},
                "nzbindex": {},
                "omgwtfnzbs": {},
                "womble": {},
                "newznab": [{}, {}]
            }
        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        print(json.dumps(cfg))
        config.logLogMessages()
        self.assertIsNone(cfg["indexers"]["binsearch"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["nzbclub"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["nzbindex"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["omgwtfnzbs"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["womble"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["newznab"][0]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["newznab"][1]["hitLimit"])
        self.assertEqual(arrow.get(0),
                         cfg["indexers"]["newznab"][0]["hitLimitResetTime"])
        self.assertEqual(arrow.get(0),
                         cfg["indexers"]["newznab"][1]["hitLimitResetTime"])
예제 #4
0
    def testMigration10to11(self):
        testCfg = {
            "main": {
                "configVersion": 10
            },
            "auth": {
                "users": [{
                    "name": None
                }, {
                    "name": "whatever"
                }]
            }
        }
        self.assertTrue("name" in testCfg["auth"]["users"][0].keys())
        self.assertTrue("name" in testCfg["auth"]["users"][1].keys())

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["username"])
        self.assertEqual("whatever", cfg["auth"]["users"][1]["username"])
        self.assertFalse("name" in cfg["auth"]["users"][0].keys())
        self.assertFalse("name" in cfg["auth"]["users"][1].keys())
예제 #5
0
    def testMigration10to11(self):
        testCfg = {
            "main": {
                "configVersion": 10
            },
            "auth": {
                "users": [
                    {
                        "name": None
                    },
                    {
                        "name": "whatever"
                    }
                ]
            }
        }
        self.assertTrue("name" in testCfg["auth"]["users"][0].keys())
        self.assertTrue("name" in testCfg["auth"]["users"][1].keys())

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["username"])
        self.assertEqual("whatever", cfg["auth"]["users"][1]["username"])
        self.assertFalse("name" in cfg["auth"]["users"][0].keys())
        self.assertFalse("name" in cfg["auth"]["users"][1].keys())
예제 #6
0
    def testMigration7to8(self):
        testCfg = {
            "main":
                {
                    "configVersion": 7,
                    "logging": {
                        "logfile-level": "",
                        "logfile-filename": 22
                    }
                },
            "indexers": {
                "Binsearch": {},
                "NZBClub": {},
                "NZBIndex": {},
                "Womble": {},
                "newznab1": {
                    "accessType": "both",
                    "apikey": "apikey1",
                    "name": "newznab1",
                    "enabled": False
                },
                "newznab2": {
                    "apikey": "apikey2",
                    "name": "newznab2",
                    "enabled": False
                }
            }
        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["indexers"]["newznab"]), json.dumps(cfg))
        self.assertEqual("newznab1", cfg["indexers"]["newznab"][0]["name"])
        self.assertEqual("newznab2", cfg["indexers"]["newznab"][1]["name"])
        self.assertTrue("accessType" in cfg["indexers"]["newznab"][0].keys())
        self.assertTrue("accessType" in cfg["indexers"]["newznab"][1].keys())
예제 #7
0
    def testMigration7to8(self):
        testCfg = {
            "main": {
                "configVersion": 7,
                "logging": {
                    "logfile-level": "",
                    "logfile-filename": 22
                }
            },
            "indexers": {
                "Binsearch": {},
                "NZBClub": {},
                "NZBIndex": {},
                "Womble": {},
                "newznab1": {
                    "accessType": "both",
                    "apikey": "apikey1",
                    "name": "newznab1",
                    "enabled": False
                },
                "newznab2": {
                    "apikey": "apikey2",
                    "name": "newznab2",
                    "enabled": False
                }
            }
        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["indexers"]["newznab"]), json.dumps(cfg))
        self.assertEqual("newznab1", cfg["indexers"]["newznab"][0]["name"])
        self.assertEqual("newznab2", cfg["indexers"]["newznab"][1]["name"])
        self.assertTrue("accessType" in cfg["indexers"]["newznab"][0].keys())
        self.assertTrue("accessType" in cfg["indexers"]["newznab"][1].keys())
예제 #8
0
    def testMigration12to13(self):
        testCfg = {
            "main":
                {
                    "configVersion": 12,
                },
            "indexers": {
                "binsearch": {},
                "nzbclub": {},
                "nzbindex": {},
                "omgwtfnzbs": {},
                "womble": {},
                "newznab": [
                    {},
                    {}

                ]

            }
        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        print(json.dumps(cfg))
        config.logLogMessages()
        self.assertIsNone(cfg["indexers"]["binsearch"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["nzbclub"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["nzbindex"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["omgwtfnzbs"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["womble"]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["newznab"][0]["hitLimit"])
        self.assertIsNone(cfg["indexers"]["newznab"][1]["hitLimit"])
        self.assertEqual(arrow.get(0), cfg["indexers"]["newznab"][0]["hitLimitResetTime"])
        self.assertEqual(arrow.get(0), cfg["indexers"]["newznab"][1]["hitLimitResetTime"])
예제 #9
0
    def testMigration8to9(self):
        testCfg = {
            "main": {
                "adminPassword": None,
                "adminUsername": None,
                "configVersion": 8,
                "enableAdminAuth": False,
                "enableAdminAuthForStats": False,
                "enableAuth": False,
                "password": None,
                "username": None
            }

        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = migrate("testsettings.cfg")
        self.assertEqual(1, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["name"])
        self.assertIsNone(cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = True
            cfg["main"]["username"] = "******"
            cfg["main"]["password"] = "******"
            json.dump(cfg, settingsfile)
        cfg = migrate("testsettings.cfg")
        self.assertEqual(1, len(cfg["auth"]["users"]))
        self.assertEqual("u", cfg["auth"]["users"][0]["name"])
        self.assertEqual("p", cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = True
            cfg["main"]["username"] = "******"
            cfg["main"]["password"] = "******"
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertEqual("u", cfg["auth"]["users"][0]["name"])
        self.assertEqual("p", cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertEqual(False, cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["name"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = True
            cfg["main"]["username"] = "******"
            cfg["main"]["password"] = "******"
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["enableAdminAuthForStats"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertEqual("u", cfg["auth"]["users"][0]["name"])
        self.assertEqual("p", cfg["auth"]["users"][0]["password"])
        self.assertEqual(False, cfg["auth"]["users"][0]["maySeeStats"])
        self.assertEqual(False, cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["name"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = False
            cfg["main"]["enableAdminAuthForStats"] = False
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["name"])
        self.assertIsNone(cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertFalse(cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["name"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = False
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["enableAdminAuthForStats"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["name"])
        self.assertIsNone(cfg["auth"]["users"][0]["password"])
        self.assertFalse(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertFalse(cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["name"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])
예제 #10
0
    def testMigration8to9(self):
        testCfg = {
            "main": {
                "adminPassword": None,
                "adminUsername": None,
                "configVersion": 8,
                "enableAdminAuth": False,
                "enableAdminAuthForStats": False,
                "enableAuth": False,
                "password": None,
                "username": None
            }
        }

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(1, len(cfg["auth"]["users"]), json.dumps(cfg))
        self.assertIsNone(cfg["auth"]["users"][0]["username"])
        self.assertIsNone(cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = True
            cfg["main"]["username"] = "******"
            cfg["main"]["password"] = "******"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(1, len(cfg["auth"]["users"]))
        self.assertEqual("u", cfg["auth"]["users"][0]["username"])
        self.assertEqual("p", cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = True
            cfg["main"]["username"] = "******"
            cfg["main"]["password"] = "******"
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertEqual("u", cfg["auth"]["users"][0]["username"])
        self.assertEqual("p", cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertEqual(False, cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["username"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = True
            cfg["main"]["username"] = "******"
            cfg["main"]["password"] = "******"
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["enableAdminAuthForStats"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertEqual("u", cfg["auth"]["users"][0]["username"])
        self.assertEqual("p", cfg["auth"]["users"][0]["password"])
        self.assertEqual(False, cfg["auth"]["users"][0]["maySeeStats"])
        self.assertEqual(False, cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["username"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = False
            cfg["main"]["enableAdminAuthForStats"] = False
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["username"])
        self.assertIsNone(cfg["auth"]["users"][0]["password"])
        self.assertTrue(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertFalse(cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["username"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])

        with open("testsettings.cfg", "wb") as settingsfile:
            cfg = copy.copy(testCfg)
            cfg["main"]["enableAuth"] = False
            cfg["main"]["enableAdminAuth"] = True
            cfg["main"]["enableAdminAuthForStats"] = True
            cfg["main"]["adminUsername"] = "******"
            cfg["main"]["adminPassword"] = "******"
            json.dump(cfg, settingsfile)
        cfg = config.migrate("testsettings.cfg")
        self.assertEqual(2, len(cfg["auth"]["users"]))
        self.assertIsNone(cfg["auth"]["users"][0]["username"])
        self.assertIsNone(cfg["auth"]["users"][0]["password"])
        self.assertFalse(cfg["auth"]["users"][0]["maySeeStats"])
        self.assertFalse(cfg["auth"]["users"][0]["maySeeAdmin"])
        self.assertEqual("au", cfg["auth"]["users"][1]["username"])
        self.assertEqual("ap", cfg["auth"]["users"][1]["password"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeStats"])
        self.assertTrue(cfg["auth"]["users"][1]["maySeeAdmin"])