예제 #1
0
 def test_change_username_method_with_user_id_not_included_in_library_records_should_return_message(
         self):
     v = User(12, 'Valentina')
     p = User(13, 'Peter')
     library = Library()
     library.add_user(v)
     result = library.change_username(13, 'George')
     self.assertEqual(result, 'There is no user with id = 13!')
예제 #2
0
 def test_remove_user_method_with_user_not_registered_should_return_message(
         self):
     v = User(12, 'Valentina')
     p = User(13, 'Peter')
     library = Library()
     library.add_user(v)
     result = library.remove_user(p)
     self.assertEqual(result, 'We could not find such user to remove!')
예제 #3
0
 def test_remove_user_method_with_valid_data_should_update_library_records_properly(
         self):
     user = User(12, 'Valentina')
     library = Library()
     library.add_user(user)
     library.add_user(User(13, 'Peter'))
     library.remove_user(user)
     self.assertEqual(library.user_records[0].__str__(), '13, Peter, []')
예제 #4
0
 def test_change_username_method_with_valid_data_should_return_message_and_update_library_records(
         self):
     v = User(12, 'Valentina')
     p = User(13, 'Peter')
     library = Library()
     library.add_user(v)
     result = library.change_username(12, 'Violeta')
     self.assertEqual(
         result, 'Username successfully changed to: Violeta for userid: 12')
     self.assertEqual(library.user_records[0].__str__(), '12, Violeta, []')
예제 #5
0
 def test_change_username_method_with_user_id_included_in_library_records_but_provided_new_username_is_the_same_should_return_message(
         self):
     v = User(12, 'Valentina')
     p = User(13, 'Peter')
     library = Library()
     library.add_user(v)
     result = library.change_username(12, 'Valentina')
     self.assertEqual(
         result,
         'Please check again the provided username - it should be different than the username used so far!'
     )
예제 #6
0
 def get(self, user_id=None):
     user = User.get(user_id=user_id)
     if user is not None:
         schema = UserSchema()
         userJSON = schema.dump(user)
         return jsonify({'result': userJSON})
     else:
         abort(404, "user does not exist")
예제 #7
0
 def test_add_user_already_registered_in_the_library_should_return_message(
         self):
     user = User(12, 'Valentina')
     library = Library()
     library.add_user(user)
     result = library.add_user(user)
     self.assertEqual(
         result, 'User with id = 12 already registered in the library!')
예제 #8
0
 def put(self, user_id=None):
     data = json.loads(request.data)
     print(data)
     if user_id is not None:
         if 'password' in data:
             user = User.get(user_id=user_id)
             user.set_password(data['password'])
             db.session.commit()
             return jsonify({'result': "success"})
         abort(409, "missing password")
     abort(409, "user doesn't exist")
예제 #9
0
 def test_get_book_method_with_book_already_rented_should_return_a_message(
         self):
     self.library.books_available.update({
         'J.K.Rowling': [
             'Harry Potter and the Philosopher\'s Stone',
             'Harry Potter and the Philosopher\'s Stone',
             'Harry Potter and the Deathly Hallows',
             'Harry Potter and the Order of the Phoenix'
         ]
     })
     self.user.get_book('J.K.Rowling',
                        'Harry Potter and the Deathly Hallows', 17,
                        self.library)
     second_user = User(13, 'Peter')
     result = second_user.get_book('J.K.Rowling',
                                   'Harry Potter and the Deathly Hallows',
                                   17, self.library)
     self.assertEqual(
         result,
         'The book "Harry Potter and the Deathly Hallows" is already rented and will be available in 17 days!'
     )
     self.assertEqual(self.user.books,
                      ["Harry Potter and the Deathly Hallows"])
     self.assertEqual(second_user.books, [])
     self.assertEqual(
         self.library.rented_books,
         {'Valentina': {
             'Harry Potter and the Deathly Hallows': 17
         }})
     self.assertEqual(
         self.library.books_available, {
             'J.K.Rowling': [
                 'Harry Potter and the Philosopher\'s Stone',
                 'Harry Potter and the Philosopher\'s Stone',
                 'Harry Potter and the Order of the Phoenix'
             ]
         })
from project.library import Library
from project.user import User

user = User(12, 'Peter')
library = Library()
library.add_user(user)
print(library.add_user(user))
library.remove_user(user)
print(library.remove_user(user))
library.add_user(user)
print(library.change_username(2, 'Igor'))
print(library.change_username(12, 'Peter'))
print(library.change_username(12, 'George'))

[
    print(
        f'{user_record.user_id}, {user_record.username}, {user_record.books}')
    for user_record in library.user_records
]
library.books_available.update({
    'J.K.Rowling': [
        'The Chamber of Secrets', 'The Prisoner of Azkaban',
        'The Goblet of Fire', 'The Order of the Phoenix',
        'The Half-Blood Prince', 'The Deathly Hallows'
    ]
})

user.get_book('J.K.Rowling', 'The Deathly Hallows', 17, library)
print(library.books_available)
print(library.rented_books)
print(user.books)
예제 #11
0
from flask import Blueprint, request, render_template, url_for, flash, make_response, redirect
from project.pool import Pool
from project.bracket import Bracket
from project.user import User
import datetime

bracket_blueprint = Blueprint('bracket', __name__, template_folder='templates')

bracket = Bracket()
pool = Pool()
user = User()


## show brackets for display or editing
@bracket_blueprint.route('/bracket/<bracket_type_label>/<user_token>',
                         methods=['GET', 'POST', 'PUT'])
def user_bracket(user_token, bracket_type_label):
    ''' Show the user bracket form '''

    # check to see if we are the admin/master bracket
    admin_user_token = user.get_admin_edit_token()
    is_admin = 0

    # if the user token equals the admin token
    if admin_user_token == user_token:
        is_admin = 1

    # check pool status
    pool_name = pool.get_pool_name()
    pool_status = pool.check_pool_status()
예제 #12
0
 def setUp(self):
     self.user = User(12, 'Valentina')
     self.library = Library()
예제 #13
0
class TestsUser(unittest.TestCase):
    def setUp(self):
        self.user = User(12, 'Valentina')
        self.library = Library()

    def test_init(self):
        self.assertEqual(self.user.user_id, 12)
        self.assertEqual(self.user.username, 'Valentina')
        self.assertEqual(self.user.books, [])

    def test_get_book_method_with_book_available_in_the_library_should_add_it_in_the_books_list(
            self):
        self.library.books_available.update({
            'J.K.Rowling': [
                'Harry Potter and the Philosopher\'s Stone',
                'Harry Potter and the Philosopher\'s Stone',
                'Harry Potter and the Deathly Hallows',
                'Harry Potter and the Order of the Phoenix'
            ]
        })
        result = self.user.get_book('J.K.Rowling',
                                    'Harry Potter and the Deathly Hallows', 17,
                                    self.library)
        self.assertEqual(
            result,
            'Harry Potter and the Deathly Hallows successfully rented for the next 17 days!'
        )
        self.assertEqual(self.user.books,
                         ["Harry Potter and the Deathly Hallows"])
        self.assertEqual(
            self.library.rented_books,
            {'Valentina': {
                'Harry Potter and the Deathly Hallows': 17
            }})
        self.assertEqual(
            self.library.books_available, {
                'J.K.Rowling': [
                    'Harry Potter and the Philosopher\'s Stone',
                    'Harry Potter and the Philosopher\'s Stone',
                    'Harry Potter and the Order of the Phoenix'
                ]
            })

    def test_get_book_method_with_book_already_rented_should_return_a_message(
            self):
        self.library.books_available.update({
            'J.K.Rowling': [
                'Harry Potter and the Philosopher\'s Stone',
                'Harry Potter and the Philosopher\'s Stone',
                'Harry Potter and the Deathly Hallows',
                'Harry Potter and the Order of the Phoenix'
            ]
        })
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Deathly Hallows', 17,
                           self.library)
        second_user = User(13, 'Peter')
        result = second_user.get_book('J.K.Rowling',
                                      'Harry Potter and the Deathly Hallows',
                                      17, self.library)
        self.assertEqual(
            result,
            'The book "Harry Potter and the Deathly Hallows" is already rented and will be available in 17 days!'
        )
        self.assertEqual(self.user.books,
                         ["Harry Potter and the Deathly Hallows"])
        self.assertEqual(second_user.books, [])
        self.assertEqual(
            self.library.rented_books,
            {'Valentina': {
                'Harry Potter and the Deathly Hallows': 17
            }})
        self.assertEqual(
            self.library.books_available, {
                'J.K.Rowling': [
                    'Harry Potter and the Philosopher\'s Stone',
                    'Harry Potter and the Philosopher\'s Stone',
                    'Harry Potter and the Order of the Phoenix'
                ]
            })

    def test_return_book_method_with_rented_book_should_remove_from_user_records_and_add_it_back_to_library_records(
            self):
        self.library.books_available.update({
            'J.K.Rowling': [
                'Harry Potter and the Philosopher\'s Stone',
                'Harry Potter and the Deathly Hallows',
                'Harry Potter and the Order of the Phoenix'
            ]
        })
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Deathly Hallows', 3,
                           self.library)
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Order of the Phoenix', 12,
                           self.library)
        self.assertEqual(self.user.books, [
            'Harry Potter and the Deathly Hallows',
            'Harry Potter and the Order of the Phoenix'
        ])
        self.user.return_book('J.K.Rowling',
                              'Harry Potter and the Deathly Hallows',
                              self.library)
        self.assertEqual(self.user.books,
                         ['Harry Potter and the Order of the Phoenix'])
        self.assertEqual(
            self.library.books_available, {
                'J.K.Rowling': [
                    'Harry Potter and the Philosopher\'s Stone',
                    'Harry Potter and the Deathly Hallows'
                ]
            })
        self.assertEqual(
            self.library.rented_books,
            {'Valentina': {
                'Harry Potter and the Order of the Phoenix': 12
            }})

    def test_return_book_method_with_book_NOT_rented_by_the_user_should_return_message(
            self):
        self.library.books_available.update({
            'J.K.Rowling': [
                'Harry Potter and the Philosopher\'s Stone',
                'Harry Potter and the Deathly Hallows',
                'Harry Potter and the Order of the Phoenix'
            ]
        })
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Deathly Hallows', 3,
                           self.library)
        result = self.user.return_book(
            'J.K.Rowling', 'Harry Potter and the Order of the Phoenix',
            self.library)
        self.assertEqual(
            result, f'Valentina doesn\'t have this book in his/her records!')

    def test_info_method_should_return_sorted_books_list(self):
        self.library.books_available.update({
            'J.K.Rowling': [
                'Harry Potter and the Philosophers Stone',
                'Harry Potter and the Deathly Hallows',
                'Harry Potter and the Order of the Phoenix'
            ]
        })
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Order of the Phoenix', 3,
                           self.library)
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Philosophers Stone', 3,
                           self.library)
        self.user.get_book('J.K.Rowling',
                           'Harry Potter and the Deathly Hallows', 3,
                           self.library)

        result = self.user.info()
        self.assertEqual(
            result,
            "Harry Potter and the Deathly Hallows, Harry Potter and the Order of the Phoenix, Harry Potter and the Philosophers Stone"
        )

    def test_init(self):
        self.assertEqual(self.library.user_records, [])
        self.assertEqual(self.library.books_available, {})
        self.assertEqual(self.library.rented_books, {})

    def test_add_user_already_registered_in_the_library_should_return_message(
            self):
        user = User(12, 'Valentina')
        library = Library()
        library.add_user(user)
        result = library.add_user(user)
        self.assertEqual(
            result, 'User with id = 12 already registered in the library!')

    def test_add_user_method_with_valid_data_should_update_records_properly(
            self):
        user = User(12, 'Valentina')
        library = Library()
        library.add_user(user)
        library.add_user(User(13, 'Peter'))
        self.assertEqual(library.user_records[0].__str__(),
                         '12, Valentina, []')
        self.assertEqual(library.user_records[1].__str__(), '13, Peter, []')

    def test_remove_user_method_with_valid_data_should_update_library_records_properly(
            self):
        user = User(12, 'Valentina')
        library = Library()
        library.add_user(user)
        library.add_user(User(13, 'Peter'))
        library.remove_user(user)
        self.assertEqual(library.user_records[0].__str__(), '13, Peter, []')

    def test_remove_user_method_with_user_not_registered_should_return_message(
            self):
        v = User(12, 'Valentina')
        p = User(13, 'Peter')
        library = Library()
        library.add_user(v)
        result = library.remove_user(p)
        self.assertEqual(result, 'We could not find such user to remove!')

    def test_change_username_method_with_user_id_not_included_in_library_records_should_return_message(
            self):
        v = User(12, 'Valentina')
        p = User(13, 'Peter')
        library = Library()
        library.add_user(v)
        result = library.change_username(13, 'George')
        self.assertEqual(result, 'There is no user with id = 13!')

    def test_change_username_method_with_user_id_included_in_library_records_but_provided_new_username_is_the_same_should_return_message(
            self):
        v = User(12, 'Valentina')
        p = User(13, 'Peter')
        library = Library()
        library.add_user(v)
        result = library.change_username(12, 'Valentina')
        self.assertEqual(
            result,
            'Please check again the provided username - it should be different than the username used so far!'
        )

    def test_change_username_method_with_valid_data_should_return_message_and_update_library_records(
            self):
        v = User(12, 'Valentina')
        p = User(13, 'Peter')
        library = Library()
        library.add_user(v)
        result = library.change_username(12, 'Violeta')
        self.assertEqual(
            result, 'Username successfully changed to: Violeta for userid: 12')
        self.assertEqual(library.user_records[0].__str__(), '12, Violeta, []')
예제 #14
0
from project.library import Library
from project.user import User

# TODO: Fix if needed- Users not added and removed from the library can access it

user = User(12, 'Peter')
user2 = User(13, 'Simo')
user3 = User(14, 'Boris')

library = Library()

library.books_available.update({
    'J.K.Rowling': [
        'The Chamber of Secrets', 'The Prisoner of Azkaban',
        'The Goblet of Fire', 'The Order of the Phoenix',
        'The Half-Blood Prince', 'The Deathly Hallows'
    ]
})

library.add_user(user)
print(library.remove_user(user))
print(library.remove_user(user))
# print(library.change_username(12, "Asen"))
# print(user.get_book("J.K.Rowling", 'The Chamber of Secrets', 10, library))
# print(user.get_book("J.K.Rowling", 'The Deathly Hallows', 12, library))
# print(user2.get_book("J.K.Rowling", 'The Order of the Phoenix', 14, library))
# print(library.rented_books)
print(user.info())