예제 #1
0
class TestMullvad(unittest.TestCase):
    def setUp(self):
        self.settings = Settings()
        self.settings.put("user", "accountnumber", "2132sadfqf")
        self.wallet = MagicMock(Wallet)
        self.mullvad = MullVad(self.settings)
        self.option = MagicMock(VpnOption)

    def test_purchase(self):
        self.mullvad._login = MagicMock()
        self.mullvad._order = MagicMock()
        self.mullvad.pay = MagicMock()

        self.mullvad.purchase(self.wallet, self.option)

        self.assertTrue(self.mullvad._login.called)
        self.assertTrue(self.mullvad._order.called)
        self.assertTrue(self.mullvad.pay.called)

    def test_get_status(self):
        self.mullvad._check_vpn_date = MagicMock(return_value=(True, "-5"))
        self.mullvad._login = MagicMock()

        expiration_date = self.mullvad.get_status()[1]
        now = datetime.datetime.now(datetime.timezone.utc)
        expiration_days = datetime.timedelta(days=int("-5"))
        full_date = now + expiration_days

        self.assertEqual(expiration_date.day, full_date.day)
        self.assertEqual(expiration_date.month, full_date.month)
예제 #2
0
class TestMullvad(unittest.TestCase):
    def setUp(self):
        self.settings = Settings()
        self.settings.put("user", "accountnumber", "2132sadfqf")
        self.wallet = MagicMock(Wallet)
        self.mullvad = MullVad(self.settings)
        self.option = MagicMock(VpnOption)

    def test_purchase(self):
        self.mullvad._login = MagicMock()
        self.mullvad._order = MagicMock()
        self.mullvad.pay = MagicMock()

        self.mullvad.purchase(self.wallet, self.option)

        self.assertTrue(self.mullvad._login.called)
        self.assertTrue(self.mullvad._order.called)
        self.assertTrue(self.mullvad.pay.called)

    def test_get_status(self):
        self.mullvad._get_expiration_date = MagicMock(
            return_value="2 January 2019")
        self.mullvad._login = MagicMock()
        now = datetime.datetime.strptime("9 December 2018", "%d %B %Y")
        self.mullvad._get_current_date = MagicMock(return_value=now)

        (online, expire_date) = self.mullvad.get_status()

        self.assertEqual(True, online)
        self.assertEqual(2019, expire_date.year)
        self.assertEqual(1, expire_date.month)
        self.assertEqual(2, expire_date.day)
예제 #3
0
class TestSettings(unittest.TestCase):
    def setUp(self):
        self.settings = Settings()
        self.settings.read_settings(
            os.path.join(os.path.dirname(__file__),
                         'resources/test_settings.cfg'))

    def test_read_config(self):
        self.assertIsNotNone(self.settings)

    def test_has_first_name(self):
        self.assertIsNotNone(self.settings.get('user', 'firstname'))

    def test_has_email(self):
        self.assertTrue("@" in self.settings.get('user', 'email'))

    def test_verify_config(self):
        verification = {"user": ["email", 'firstname', 'lastname']}
        self.assertTrue(self.settings.verify_options(verification))

    def test_verify_bad_config(self):
        verification = {
            "user": ["email", 'firstname', 'lastname'
                     "randomattribute"]
        }
        self.assertFalse(self.settings.verify_options(verification))

    def test_put(self):
        key = "putkey"
        section = "putsection"
        value = "putvalue"
        self.settings.put(section, key, value)
        self.assertEqual(self.settings.get(section, key), value)

    def test_get_merge(self):
        key = 'email'
        sections = ['testhoster', 'user']
        value = '*****@*****.**'
        self.assertEqual(self.settings.get_merge(sections, key), value)

    def test_get_merge_ordering(self):
        key = 'email'
        sections = ['user', 'testhoster']
        value = '*****@*****.**'
        self.assertEqual(self.settings.get_merge(sections, key), value)

    def test_custom_provider(self):
        self.assertEqual(self.settings.get("testhoster", "email"),
                         "*****@*****.**")