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)
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)
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"), "*****@*****.**")