def test_password_setter(self): with self.assertRaises(ValueError): u = User(username=self.test_username, password="******" * 5) with self.assertRaises(ValueError): u = User(username=self.test_username, password="******" * 32) u = User(username=self.test_username, password=self.test_user_password) self.assertIsNotNone(u._password_hash)
def test_pushover_getter(self, mocked_PushoverAPI): u = User(username=self.test_username, password=self.test_user_password) with self.assertRaises(ServiceNotAuth): u.pushover mocked_PushoverAPI.return_value.validate.return_value = {"status": 1} u.pushover = self.test_pushover_key self.assertIsNotNone(u._pushover_key) self.assertEqual(u.pushover, self.test_pushover_key) self.assertEqual(u.pushover, u._pushover_key)
def test_pushover_setter(self, mocked_PushoverAPI): u = User(username=self.test_username, password=self.test_user_password) mocked_PushoverAPI.return_value.validate.return_value = {"status": -1} with self.assertRaises(InvalidAction): u.pushover = self.test_pushover_key self.assertIsNone(u._pushover_key) mocked_PushoverAPI.return_value.validate.return_value = {"status": 1} u.pushover = self.test_pushover_key self.assertIsNotNone(u._pushover_key) self.assertEqual(u.pushover, self.test_pushover_key)
def setUp(self): self.app = create_app("testing") self.app_context = self.app.app_context() self.app_context.push() db.create_all() self.client = self.app.test_client(use_cookies=True) self.client_username = "******" self.client_user_password = "******" self.test_channel_ids = [f"test_channel_id_{i}" for i in range(10)] db.session.add(User(self.client_username, self.client_user_password)) db.session.commit()
def setUp(self): self.app = create_app("testing") self.app_context = self.app.app_context() self.app_context.push() db.create_all() self.client = self.app.test_client(use_cookies=True) self.client_username = "******" self.client_user_password = "******" self.test_channel_id = "UCBR8-60-B28hp2BmDPdntcQ" db.session.add(User(self.client_username, self.client_user_password)) db.session.commit()
def test_subscribe_to(self, mocked_channel, mocked_is_subscribing, mocked_subscription): u = User(username=self.test_username, password=self.test_user_password) mocked_channel.query.get.return_value = mock.MagicMock( id=self.test_channel_id) mocked_is_subscribing.return_value = True with self.assertRaises(InvalidAction): u.subscribe_to(self.test_channel_id) mocked_channel.query.get.return_value = None mocked_is_subscribing.return_value = False u.subscribe_to(self.test_channel_id) mocked_channel.assert_called()
def test_user_login_logout(self): db.session.add(User(self.client_username, self.client_password)) db.session.commit() # Test DataRequired validator response = self.client.post( "/user/login", data={ "username": "", "password": "" }, follow_redirects=True, ) self.assertEqual(response.status_code, 200) self.assertEqual( response.get_data(as_text=True).count("This field is required."), 2) # Test Bad Login response = self.client.post( "/user/login", data={ "username": self.client_username, "password": "******" }, follow_redirects=True, ) self.assertEqual(response.status_code, 200) self.assertIn("Login</title>", response.get_data(as_text=True)) self.assertIn("Invalid username or password.", response.get_data(as_text=True)) # Test Full Login Topology and redirect to Dashboard response = self.client.post( "/user/login", data={ "username": self.client_username, "password": self.client_password }, follow_redirects=True, ) self.assertEqual(response.status_code, 200) self.assertIn("Subscriptions</title>", response.get_data(as_text=True)) self.assertIn(self.client_username, response.get_data(as_text=True)) # Test redirect logined user to Dashboard response = self.client.get("/user/login", follow_redirects=True) self.assertEqual(response.status_code, 200) self.assertIn("Subscriptions</title>", response.get_data(as_text=True)) self.assertIn("You've already logined!", response.get_data(as_text=True)) # Logout and redirect to Login response = self.client.get("/user/logout", follow_redirects=True) self.assertEqual(response.status_code, 200) self.assertIn("Login</title>", response.get_data(as_text=True)) self.assertIn("You've Logged Out", response.get_data(as_text=True)) # Test Full Login Topology and redirect to pre-defined redirected URL response = self.client.get("/user/setting", follow_redirects=True) self.assertIn(login_manager.login_message, response.get_data(as_text=True)) response = self.client.post( "/user/login?next=%2Fuser%2Fsetting", data={ "username": self.client_username, "password": self.client_password }, follow_redirects=True, ) self.assertEqual(response.status_code, 200) self.assertIn("Setting</title>", response.get_data(as_text=True)) self.assertIn(self.client_username, response.get_data(as_text=True))
def test_pushover_deleter(self, mocked_PushoverAPI): u = User(username=self.test_username, password=self.test_user_password) mocked_PushoverAPI.return_value.validate.return_value = {"status": 1} u.pushover = self.test_pushover_key self.assertIsNotNone(u._pushover_key) self.assertEqual(u.pushover, self.test_pushover_key)
def test_check_password(self): u = User(username=self.test_username, password=self.test_user_password) self.assertTrue(u.check_password(self.test_user_password)) self.assertFalse(u.check_password("*"))
def test_password_getter(self): u = User(username=self.test_username, password=self.test_user_password) with self.assertRaises(AttributeError): u.password
def test_user_mixins(self): u = User(username=self.test_username, password=self.test_user_password) self.assertIs(u.is_authenticated, True) self.assertIs(u.is_active, True) self.assertIs(u.is_anonymous, False) self.assertEqual(u.get_id(), self.test_username)