def test_change_details_of_product(self): user1 = User("amir", 1) user1.identifier = 0 user1.username = "******" user1.password = "******" user1.state = State.STORE_OWNER user1.is_logged_in = True store1 = Store("mega", 1, "123123", None, None) store1.store_number = 1 product1 = Product('chocholate', 'Food', ['Food', 'Sweet'], 10) product1.catalog_number = 1 store1.owners = [0] store1.add_new_product(product1) Ecommerce.get_instance().subscribers = [user1] Ecommerce.get_instance().stores = [store1] self.assertTrue( user1.change_details_of_product(1, "name", "whiteChocholate").val, "need return True") self.assertFalse( user1.change_details_of_product(2, "name", "whiteChocholate").val, "need return False")
class TestUser(unittest.TestCase): """ Tests for the user class """ def setUp(self): self.mock_db_handler = MagicMock() self.user = User(self.mock_db_handler) # Test signing into an account def test_sign_up(self): self.mock_db_handler.create.return_value = { 'username': '******', 'user_id': 45, 'password': '******', 'is_admin': False } self.mock_db_handler.get_max.return_value = 44 self.mock_db_handler.find.return_value = None expected_result = { 'is_admin': False, 'user_created': True, 'username': '******', 'user_id': 45 } with app.test_request_context(path='/account/signup/abc123', json={ 'username': '******', 'password': '******' }): actual_result = self.user.determine_action('signup/abc123') self.assertEqual(expected_result, actual_result) # Test logging into an account def test_login(self): self.mock_db_handler.find.return_value = { 'username': '******', 'user_id': 45, 'password': '******', 'is_admin': False } expected_result = 45 with app.test_request_context(path='/account/login', json={ 'username': '******', 'password': '******' }): self.user.determine_action('login') actual_result = session['id'] self.assertEqual(expected_result, actual_result) # Test checking a user's logged in status def test_logged_in(self): self.mock_db_handler.find.return_value = { 'username': '******', 'user_id': 45, 'password': '******', 'is_admin': False } expected_result = True with app.test_request_context(path='/account/login', json={ 'username': '******', 'password': '******' }): self.user.determine_action('login') actual_result = self.user.is_logged_in() self.assertEqual(expected_result, actual_result) # Test checking a user's authorization def test_is_authorized(self): self.mock_db_handler.find.return_value = { 'username': '******', 'user_id': 45, 'password': '******', 'is_admin': True } expected_result = True with app.test_request_context(path='/account/login', json={ 'username': '******', 'password': '******' }): self.user.determine_action('login') actual_result = self.user.is_authorized() self.assertEqual(expected_result, actual_result) # Test logging a user out def test_logout(self): self.mock_db_handler.find.return_value = { 'username': '******', 'user_id': 45, 'password': '******', 'is_admin': False } with app.test_request_context(path='/account/login', json={ 'username': '******', 'password': '******' }): self.user.determine_action('login') with app.test_request_context(path='logout', json=json.dumps({ 'username': '******', 'password': '******' })): with self.assertRaises(KeyError): session[45] # Test deleting a user out def test_delete_user(self): self.mock_db_handler.find.return_value = 'foo' expected_result = {'user_id': 45} with app.test_request_context(path='/account/45', method='DELETE', json={ 'username': '******', 'password': '******' }): actual_result = self.user.determine_action('45') self.assertEqual(expected_result, actual_result)