Ejemplo n.º 1
0
    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")
Ejemplo n.º 2
0
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)