def test_index(self):
        # AAA's

        # Arrange
        from billtracker.views.default import home
        request: Request = testing.DummyRequest()
        test_user = User()
        test_user.id = 1
        test_user.bills = [Bill(), Bill(), Bill()]

        # Act
        with unittest.mock.patch('billtracker.data.repository.get_user_by_id',
                                 return_value=test_user):
            info = home(request)

        # Assert
        self.assertIsNotNone(info['user'])
Exemplo n.º 2
0
    def test_index_viewmodel(self):
        # AAA's

        # Arrange
        request: Request = testing.DummyRequest()
        test_user = User()
        test_user.id = 1
        test_user.bills = [Bill(), Bill(), Bill()]

        # Act
        with unittest.mock.patch('billtracker.data.repository.get_user_by_id',
                                 return_value=test_user):
            vm = IndexViewModel(request, user_id=1)

        # Assert
        self.assertIsNone(vm.error)
        self.assertIsNotNone(vm.user)
Exemplo n.º 3
0
    def test_details_vm_no_bill(self):
        request: Request = testing.DummyRequest()

        mock_user = User()
        mock_user.id = 74
        request.matchdict['bill_id'] = 200

        mock_user.bills = [Bill()]

        p1 = unittest.mock.patch('billtracker.data.repository.get_user_by_id',
                                 return_value=mock_user)
        p2 = unittest.mock.patch('billtracker.data.repository.get_bill_by_id',
                                 return_value=None)

        with p1, p2:
            vm = BillDetailsViewModel(request, mock_user.id)
            self.assertIsNotNone(vm.error)
            self.assertIn('The bill with ID {} was not found'.format(200),
                          vm.error)
    def test_details_get(self):
        from billtracker.views.default import details_get

        request: Request = testing.DummyRequest()
        user_id = 72
        request.matchdict['bill_id'] = 700

        mock_user = User()
        mock_user.id = user_id
        mock_user.bills = [Bill(), Bill(), Bill()]
        for b in mock_user.bills:
            b.user_id = user_id

        p1 = unittest.mock.patch('billtracker.data.repository.get_user_by_id',
                                 return_value=mock_user)
        p2 = unittest.mock.patch('billtracker.data.repository.get_bill_by_id',
                                 return_value=mock_user.bills[0])

        with p1, p2:
            info = details_get(request)

        self.assertIsNotNone(info['user'])
        self.assertGreater(len(info['user'].bills), 0)
Exemplo n.º 5
0
    def test_details_vm_bill_not_from_user(self):
        request: Request = testing.DummyRequest()

        mock_user = User()
        mock_user.id = 74

        bill = Bill()
        bill.id = 700
        bill.user_id = mock_user.id + 1
        request.matchdict['bill_id'] = bill.id

        mock_user.bills = [bill]

        p1 = unittest.mock.patch('billtracker.data.repository.get_user_by_id',
                                 return_value=mock_user)
        p2 = unittest.mock.patch('billtracker.data.repository.get_bill_by_id',
                                 return_value=bill)

        with p1, p2:
            vm = BillDetailsViewModel(request, mock_user.id)
            self.assertIsNotNone(vm.error)
            self.assertIsNone(vm.bill)
            self.assertIn('does not belong to user', vm.error)
Exemplo n.º 6
0
def add_users(session: Session) -> List[User]:
    users = []
    data_file = os.path.join(DbSession.db_folder, 'MOCK_USERS.json')
    with open(data_file, 'r', encoding='utf-8') as fin:
        data = json.load(fin)

    for u in data:
        user = User()
        users.append(user)
        user.email = u.get('email')
        user.name = u.get('name')
        user.created_date = dateutil.parser.parse(u.get('created_date'))
        user.last_login = dateutil.parser.parse(u.get('last_login'))
        user.last_login = dateutil.parser.parse(u.get('last_login'))
        user.hashed_password = u.get('hashed_password')
        session.add(user)

    return users