def test_get_all_conversations(self):
     self.assertEqual(True, isinstance(Conversation.get(id=1), dict))
     self.conversation1.save()
     self.conversation2.save()
     self.assertEqual(True,
                      isinstance(Conversation.get_all()[0], Conversation))
     self.assertEqual(True,
                      isinstance(Conversation.get_all()[1], Conversation))
     self.assertEqual(2, len(Conversation.get_all()))
Esempio n. 2
0
    def setUp(self):
        """
        Set up test application.
        """
        self.app = create_app('testing')
        self.client = self.app.test_client()
        self.client.headers = {'Authorization': getenv('TEST_TOKEN')}
        self.app_context = self.app.app_context()
        self.app_context.push()
        db.drop_all()
        db.create_all()

        self.board1 = Board()
        self.board2 = Board()
        self.conversation1 = Conversation()
        self.conversation2 = Conversation()
        self.deposit1 = Deposit()
        self.deposit2 = Deposit()
        self.estate1 = Estate(address="Random Address 1")
        self.estate2 = Estate(address="Random Address 2")
        self.estate3 = Estate()
        self.headers = {'Authorization': getenv('TEST_TOKEN')}
        self.message1 = Message(sender=1, content='Random Content')
        self.message2 = Message(sender=2, content='Random Content')
        self.message3 = Message()
        self.payment1 = Payment()
        self.payment2 = Payment()
        self.role1 = Role(title='basic')
        self.role2 = Role(title='admin')
        self.role3 = Role(title='super_admin')
        self.role4 = Role()
        self.unit1 = Unit(name="Random Unit 1")
        self.unit2 = Unit(name="Random Unit 2")
        self.unit3 = Unit()
        self.user1 = User(name="First1 Middle1 Last1",
                          phone_number="000 12 3456781",
                          email="*****@*****.**",
                          password=digest('ABC123!@#'))
        self.user2 = User(name="First2 Middle2 Last2",
                          phone_number="000 12 3456782",
                          email="*****@*****.**",
                          password=digest('ABC123!@#'))
        self.user3 = User()
        self.user_new_data1 = {'phone_number': "000 12 3456783"}
        self.user_new_data2 = {'bad_field': "random"}
        self.wallet1 = Wallet()
        self.wallet2 = Wallet()
        self.user1_dict = {
            "name": "First1 Middle1 Last1",
            "phone_number": "000 12 3456781",
            "email": "*****@*****.**",
            "password": "******"
        }
        self.conversation3_dict = {"participants": [1, 2]}
        self.message4_dict = {"content": "New Message."}
        self.board3_dict = {'members': [1, 2]}
def create_conversation(user_ids, db_session=db_session):
    conversation = Conversation()
    db_session.add(conversation)
    db_session.commit()

    create_join_rows(user_ids, conversation.id, db_session)
    return conversation.id
 def post(self, conversation_id):
     """
     Send a message into a conversation.
     """
     payload = request.get_json()
     required = ['content']
     result = validate_json(required, payload, empty=True)
     if isinstance(result, bool) is False:
         return {
             'status': 'fail',
             'message': 'Content required for a message.'
         }, 400
     else:
         current_user_id = current_user_id = view_token(
             request.headers.get('Authorization'))['id']
         message = Message(sender=current_user_id,
                           content=payload['content'])
         conversation = Conversation.get(id=conversation_id)
         conversation.insert('messages', [message])
         return {
             'status': 'success',
             'data': {
                 'updated_conversation': conversation.view()
             }
         }, 201
Esempio n. 5
0
 def test_add_remove_conversation_from_board(self):
     self.board1.save()
     self.conversation1.save()
     board1 = Board.get(id=1)
     board1.insert('conversation', Conversation.get(id=1))
     self.assertEqual(True, isinstance(board1.conversation, Conversation))
     board1.remove('conversation')
     self.assertEqual(None, board1.conversation)
Esempio n. 6
0
 def test_add_and_remove_conversation_from_user(self):
     self.user1.save()
     self.conversation1.save()
     self.conversation2.save()
     user1 = User.get(id=1)
     self.assertEqual(0, len(user1.conversations))
     user1.insert('conversations', Conversation.get_all())
     self.assertEqual(2, len(user1.conversations))
     user1.remove('conversations', id=1)
     self.assertEqual(1, len(user1.conversations))
     user1.remove('conversations')
     self.assertEqual(0, len(user1.conversations))
 def test_add_and_remove_message_from_conversation(self):
     self.conversation1.save()
     self.message1.save()
     self.message2.save()
     conversation1 = Conversation.get(id=1)
     self.assertEqual(0, len(conversation1.messages))
     conversation1.insert(
         'messages',
         [Message.get(id=1), Message.get(id=2)])
     self.assertEqual(True, isinstance(conversation1.messages[0], Message))
     self.assertEqual(True, isinstance(conversation1.messages[1], Message))
     self.assertEqual(2, len(conversation1.messages))
     conversation1.remove('messages', id=1)
     self.assertEqual(1, len(conversation1.messages))
 def post(self):
     """
     Create a conversation.
     """
     payload = request.get_json()
     required = ['participants']
     result = validate_json(required, payload, empty=True)
     if isinstance(result, bool) is False:
         return {
             'status': 'fail',
             'message': 'Participants list required.',
             'help': 'It can be empty if conversing with oneself.'
         }, 400
     else:
         current_user_id = view_token(
             request.headers.get('Authorization'))['id']
         if current_user_id not in payload['participants']:
             payload['participants'].append(current_user_id)
         participants = [User.get(id=i) for i in payload['participants']]
         for i in participants:
             if isinstance(i, dict):
                 return {
                     'status':
                     'fail',
                     'message':
                     'The user does not exist.',
                     'missing_user':
                     payload['participants'][participants.index(i)]
                 }, 404
         conversation = Conversation()
         conversation.insert('participants', participants)
         return {
             'status': 'success',
             'data': {
                 'conversation': conversation.view()
             }
         }, 201
 def test_delete_conversation(self):
     self.conversation1.save()
     conversation1 = Conversation.get(id=1)
     self.assertTrue(conversation1.delete())
     self.assertFalse(Conversation.check_exists(id=1))
 def test_conversation_exists(self):
     self.assertFalse(Conversation.check_exists(id=1))
     self.conversation1.save()
     self.assertTrue(Conversation.check_exists(id=1))
 def test_get_conversation(self):
     self.assertEqual(True, isinstance(Conversation.get(id=1), dict))
     self.conversation1.save()
     self.assertEqual(True, isinstance(Conversation.get(id=1),
                                       Conversation))
Esempio n. 12
0
def seed_test_data():
    """
    Seed data to be used for testing.
    """
    db.drop_all()
    db.create_all()
    payment_1 = Payment()
    payment_2 = Payment()
    payment_3 = Payment()
    payment_4 = Payment()
    payment_1.insert('deposits', [Deposit(
        amount=1000.0), Deposit(amount=500.0)])
    payment_2.insert('deposits', [Deposit(
        amount=1000.0), Deposit(amount=500.0)])
    payment_3.insert('deposits', [Deposit(amount=1000.0)])
    payment_4.insert('deposits', [Deposit(amount=1000.0)])
    wallet_1 = Wallet()
    wallet_2 = Wallet()
    wallet_3 = Wallet()
    wallet_4 = Wallet()
    wallet_1.insert('payments', [payment_1, payment_2])
    wallet_2.insert('payments', [payment_3])
    wallet_3.insert('payments', [payment_4])
    estate1 = Estate(address='Casterly Rock')
    estate2 = Estate(address='Dorne')
    estate3 = Estate(address='Dragonstone')
    estate2.insert('payment', wallet_2.payments[0])
    estate3.insert('payment', wallet_3.payments[0])
    unit1 = Unit(name='No. 1')
    unit2 = Unit(name='No. 2')
    unit3 = Unit(name='No. 1')
    unit4 = Unit(name='No. 2')
    unit5 = Unit(name='No. 3')
    unit1.insert('payment', wallet_1.payments[0])
    unit2.insert('payment', wallet_1.payments[1])
    estate1.insert('estate_units', [unit1, unit2])
    estate2.insert('estate_units', [unit3])
    estate3.insert('estate_units', [unit4, unit5])
    board1 = Board()
    board2 = Board()
    board1.insert('estates_owned', [estate1, estate2])
    board2.insert('estates_owned', [estate3])
    board1.insert('units_owned', [unit5])
    user0 = User(
        name="Test User",
        phone_number="000 00 0000000",
        email="*****@*****.**",
        password=digest('ABC123!@#1'))
    user1 = User(
        name="Jaime Lannister",
        phone_number="000 12 3456781",
        email="*****@*****.**",
        password=digest('ABC123!@#1'))
    user2 = User(
        name="Oberyn Martell",
        phone_number="000 12 3456782",
        email="*****@*****.**",
        password=digest('ABC123!@#2'))
    user3 = User(
        name="Daenerys Targaryen",
        phone_number="000 12 3456783",
        email="*****@*****.**",
        password=digest('ABC123!@#3'))
    conversation1 = Conversation()
    conversation2 = Conversation()
    message1 = Message(sender=user1.name,
                       content='Content 1')
    message2 = Message(sender=user2.name,
                       content='Content 2')
    message3 = Message(sender=user3.name,
                       content='Content 3')
    conversation1.insert('messages', [message1, message2])
    conversation2.insert('messages', [message3])
    user0.insert('boards', [board1])
    user1.insert('boards', [board1])
    user2.insert('boards', [board1])
    user3.insert('boards', [board2])
    user1.insert('units', [unit1, unit2])
    user2.insert('units', [unit3])
    user3.insert('units', [unit4])
    user0.insert('wallet', wallet_4)
    user1.insert('wallet', wallet_1)
    user2.insert('wallet', wallet_2)
    user3.insert('wallet', wallet_3)
    user1.insert('conversations', [conversation1, conversation2])
    user2.insert('conversations', [conversation1, conversation2])
    user3.insert('conversations', [conversation1])
    role1 = Role(title='admin')
    role2 = Role(title='basic')
    role3 = Role(title='super_admin')
    role3.insert('users', [user0, user1])
    role2.insert('users', [user0, user1, user2, user3])
    role1.insert('users', [user0, user3])
    role1.save()
    role2.save()
    role3.save()
    print('\nTest Data Seeded.\n')