def test_channels_list_owner_channels(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel _ = channels_create(test_user0['token'], "Public Channel 0", True) # test_user0 creates 1 private channel _ = channels_create(test_user0['token'], "Private Channel 0", False) # test_user1 creates 1 public channel pub_channel1 = channels_create(test_user1['token'], "Public Channel 1", True) # test_user1 creates 1 private channel priv_channel1 = channels_create(test_user1['token'], "Private Channel 1", False) # check that for user0, return only the 2 channels they created assert(channels_list(test_user1['token']) == { 'channels' : [ { "channel_id": pub_channel1['channel_id'], "name": "Public Channel 1", }, { "channel_id": priv_channel1['channel_id'], "name": "Private Channel 1", }, ] })
def test_users_all_valid_order(): clear() user1 = create_two_test_users()[1] assert (users_all(user1['token']) != { 'users': [ { "u_id": 1, "email": "*****@*****.**", "name_first": "Jayden", "name_last": "Haycobs", "handle_str": "jaydenhaycobs", "profile_img_url": '', }, { "u_id": 0, "email": "*****@*****.**", "name_first": "Hayden", "name_last": "Jacobs", "handle_str": "haydenjacobs", "profile_img_url": '', }, ] })
def test_message_send_usernotinchannel(): clear() test_user_0, test_user_1 = create_two_test_users() channel_name1 = channels_create(test_user_0['token'], "Main Channel", True) with pytest.raises(error.AccessError): assert message_send(test_user_1['token'], channel_name1['channel_id'], message1)
def test_channel_removeowner_only_member(): clear() _, user_1 = create_two_test_users() public_channel = channels_create(user_1['token'], "name", True) with pytest.raises(error.InputError): assert channel_removeowner(user_1['token'], public_channel['channel_id'], user_1['u_id']) == {}
def test_channel_removeowner_not_invited(): clear() user_0, user_1 = create_two_test_users() private_channel = channels_create(user_0['token'], "name", False) with pytest.raises(error.InputError): assert channel_removeowner(user_0['token'], private_channel['channel_id'], user_1['u_id']) == {}
def test_channel_addowner_already_owner(): clear() user_0, user_1 = create_two_test_users() public_channel = channels_create(user_0['token'], "name", True) channel_join(user_1['token'], public_channel['channel_id']) channel_addowner(user_0['token'], public_channel['channel_id'], user_1['u_id']) with pytest.raises(error.InputError): channel_addowner(user_0['token'], public_channel['channel_id'], user_1['u_id'])
def test_channel_removeowner_success(): clear() user_0, user_1 = create_two_test_users() public_channel = channels_create(user_0['token'], "name", True) channel_join(user_1['token'], public_channel['channel_id']) channel_addowner(user_0['token'], public_channel['channel_id'], user_1['u_id']) assert channel_removeowner(user_0['token'], public_channel['channel_id'], user_1['u_id']) == {}
def test_channel_removeowner_invited(): clear() user_0, user_1 = create_two_test_users() private_channel = channels_create(user_0['token'], "name", False) channel_invite(user_0['token'], private_channel['channel_id'], user_1['u_id']) channel_addowner(user_0['token'], private_channel['channel_id'], user_1['u_id']) assert channel_removeowner(user_0['token'], private_channel['channel_id'], user_1['u_id']) == {}
def initialisation(): clear() test_user0, test_user1 = create_two_test_users() #create 2 channels channel_id0 = channels_create(test_user0['token'], "Main Channel", True) channel_id1 = channels_create(test_user0['token'], "Secondary Channel", True) #implement messages in both channels message_send(test_user0['token'], 0, "Let's geddit") message_send(test_user0['token'], 0, "Let's go") expectedmessages0 = [ { 'message_id': 1, 'channel_id': 0, 'u_id': 0, 'message': "Let's go" }, { 'message_id': 0, 'channel_id': 0, 'u_id': 0, 'message': "Let's geddit" }, ] message_send(test_user0['token'], 1, "Hello") message_send(test_user0['token'], 1, "Hi") message_send(test_user0['token'], 1, "Hey") expectedmessages1 = [{ 'message_id': 4, 'channel_id': 1, 'u_id': 0, 'message': "Hey" }, { 'message_id': 2, 'channel_id': 1, 'u_id': 0, 'message': "Hello" }, { 'message_id': 1, 'channel_id': 0, 'u_id': 0, 'message': "Let's go" }, { 'message_id': 0, 'channel_id': 0, 'u_id': 0, 'message': "Let's geddit" }] return test_user0, test_user1, expectedmessages0, expectedmessages1, channel_id0, channel_id1
def test_message_sendlater_in_order(): clear() test_user_0, test_user_1 = create_two_test_users() channel_name1 = channels_create(test_user_0['token'], "Main Channel", True) channel_join(test_user_1['token'],channel_name1['channel_id']) message_sendlater(test_user_1['token'], channel_name1['channel_id'], message1, (datetime.now()).timestamp()+2) message_send(test_user_1['token'], channel_name1['channel_id'], message1) message_send(test_user_0['token'], channel_name1['channel_id'], message1) message_sendlater(test_user_0['token'], channel_name1['channel_id'], message1, (datetime.now()).timestamp()+4) sleep(2.5) assert message_send(test_user_1['token'], channel_name1['channel_id'], message1) == {'message_id': 3} sleep(2.5) assert message_send(test_user_1['token'], channel_name1['channel_id'], message1) == {'message_id': 5}
def test_standup_send_invalid_user(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel channel0 = channels_create(test_user0['token'], "Public Channel", True) # test_user0 starts a standup standup_start(test_user0['token'], channel0['channel_id'], 2) #test_user1 tries to send message into standup in channel he is not part of with pytest.raises(error.AccessError): standup_send(test_user1['token'], channel0['channel_id'], 'hi')
def test_message_pin_notmember(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel channel_id = channels_create(test_user1['token'], "Public Channel", True) # test_user1 sends 1 message to public channel message1 = "inital message" message1_id = message_send(test_user1['token'], channel_id['channel_id'], message1) with pytest.raises(AccessError): message_pin(test_user0['token'], message1_id['message_id'])
def test_message_edit_flockrowner(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel public_channel_id = channels_create(test_user1['token'], "Main Channel", True) # test_user1 joins public channel channel_join(test_user0['token'], public_channel_id['channel_id']) # test_user1 sends 1 message to public channel message0 = "inital message" message0_id = message_send(test_user1['token'], public_channel_id['channel_id'], message0) assert message_edit(test_user0['token'], message0_id['message_id'], 'edited message') == {}
def test_standup_start_existing_standup(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel channel0 = channels_create(test_user0['token'], "Public Channel", True) # test_user1 joins channel0 channel_join(test_user1['token'], channel0['channel_id']) # test_user0 starts a standup standup_start(test_user0['token'], channel0['channel_id'], 2) # test_user1 also tries to starts a standup with pytest.raises(error.InputError): standup_start(test_user1['token'], channel0['channel_id'], 2)
def test_message_send_in_order(): clear() test_user_0, test_user_1 = create_two_test_users() channel_name1 = channels_create(test_user_0['token'], "Main Channel", True) channel_join(test_user_1['token'], channel_name1['channel_id']) assert message_send(test_user_1['token'], channel_name1['channel_id'], message1) == { 'message_id': 0 } assert message_send(test_user_1['token'], channel_name1['channel_id'], message1) == { 'message_id': 1 } assert message_send(test_user_0['token'], channel_name1['channel_id'], message1) == { 'message_id': 2 }
def test_message_edit_notusermsg(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel public_channel_id = channels_create(test_user0['token'], "Main Channel", True) # test_user1 joins public channel channel_join(test_user1['token'], public_channel_id['channel_id']) # test_user0 sends 1 message message0 = "user0's message" message0_id = message_send(test_user0['token'], public_channel_id['channel_id'], message0) # raise error if user1 tries to edit user0's message with pytest.raises(AccessError): message_edit(test_user1['token'], message0_id['message_id'], 'edited message')
def test_message_remove_no_permission(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel public_channel_id = channels_create(test_user0['token'], "Main Channel", True) # test_user1 joins public channel channel_join(test_user1['token'], public_channel_id['channel_id']) # test_user0 sends 1 message message0 = "Let's geddit" message0_id = message_send(test_user0['token'], public_channel_id['channel_id'], message0) # test_user1 tries to remove test_user0's message with pytest.raises(AccessError): assert message_remove(test_user1['token'], message0_id['message_id'])
def test_message_remove_channel_owner(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel public_channel_id = channels_create(test_user0['token'], "Main Channel", True) # test_user1 joins public channel channel_join(test_user1['token'], public_channel_id['channel_id']) # test_user1 sends 1 message message0 = "Let's geddit" message0_id = message_send(test_user1['token'], public_channel_id['channel_id'], message0) # check test_user1 (channel owner) removes their message assert message_remove(test_user0['token'], message0_id['message_id']) == {}
def test_message_pin_owner(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel channel_id = channels_create(test_user0['token'], "Main Channel", True) # test_user1 joins public channel channel_join(test_user1['token'], channel_id['channel_id']) # test_user0 sends 1 message message0 = "initial message" message0_id = message_send(test_user0['token'], channel_id['channel_id'], message0) # raise error if user1 tries to pin user0's message with pytest.raises(AccessError): message_pin(test_user1['token'], message0_id['message_id'])
def test_channels_list_joined_channels(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel pub_channel0 = channels_create(test_user0['token'], "Public Channel 0", True) # test_user0 creates 1 private channel priv_channel0 = channels_create(test_user0['token'], "Private Channel 0", False) # test_user1 creates 1 public channel pub_channel1 = channels_create(test_user1['token'], "Public Channel 1", True) # test_user1 creates 1 private channel priv_channel1 = channels_create(test_user1['token'], "Private Channel 1", False) # test_user1 joins the channels test_user0 created channel_join(test_user1['token'], pub_channel0['channel_id']) channel_invite(test_user0['token'], priv_channel0['channel_id'], test_user1['u_id']) # check that for test_user1, return list of all channels assert(channels_list(test_user1['token']) == { 'channels': [ { "channel_id": pub_channel0['channel_id'], "name": "Public Channel 0" }, { "channel_id": priv_channel0['channel_id'], "name": "Private Channel 0" }, { "channel_id": pub_channel1['channel_id'], "name": "Public Channel 1" }, { "channel_id": priv_channel1['channel_id'], "name": "Private Channel 1" }, ] })
def test_channels_listsall_many(): clear() test_user0, test_user1 = create_two_test_users() # create multiple test channels # test_user0 creates 1 public channel pub_channel0 = channels_create(test_user0['token'], "Public Channel 0", True) # test_user0 creates 1 private channel priv_channel0 = channels_create(test_user0['token'], "Private Channel 0", False) # test_user1 creates 1 public channel pub_channel1 = channels_create(test_user1['token'], "Public Channel 1", True) # test_user1 creates 1 private channel priv_channel1 = channels_create(test_user1['token'], "Private Channel 1", False) assert(channels_listall(test_user0['token']) == { 'channels' : [ { "channel_id": pub_channel0['channel_id'], "name": "Public Channel 0", }, { "channel_id": priv_channel0['channel_id'], "name": "Private Channel 0", }, { "channel_id": pub_channel1['channel_id'], "name": "Public Channel 1", }, { "channel_id": priv_channel1['channel_id'], "name": "Private Channel 1", }, ] })
def test_channels_list_authorised_priv_channel(): clear() test_user0, test_user1 = create_two_test_users() # test_user0 creates 1 public channel _ = channels_create(test_user0['token'], "Public Channel 0", True) # test_user0 creates 1 private channel priv_channel0 = channels_create(test_user0['token'], "Private Channel 0", False) # test_user1 is invited to join private channel channel_invite(test_user0['token'], priv_channel0['channel_id'], test_user1['u_id']) # for test_user1, only lists the 1 private channel they are part of assert(channels_list(test_user1['token']) == { 'channels' : [ { "channel_id": priv_channel0['channel_id'], "name": "Private Channel 0", }, ] })
def test_user_profile_sethandle_already_exists(): clear() test_user_0 = create_two_test_users()[0] with pytest.raises(InputError): user_profile_sethandle(test_user_0['token'], "jaydenhaycobs")
def test_channel_addowner_invalid_channel(): clear() user_0, user_1 = create_two_test_users() public_channel = 4 with pytest.raises(error.InputError): assert channel_addowner(user_0['token'], public_channel, user_1['u_id']) == {}
def test_admin_userpermission_change_notflockrowner(): clear() user_0, user_1 = create_two_test_users() with pytest.raises(error.AccessError): assert admin_userpermission_change(user_1['token'], user_0['u_id'], 1) == {}
def test_admin_userpermission_change_invalidpermissionid(): clear() user_0, user_1 = create_two_test_users() with pytest.raises(error.InputError): assert admin_userpermission_change(user_0['token'], user_1['u_id'], 7) == {}
def test_admin_userpermission_change_successtoowner(): clear() user_0, user_1 = create_two_test_users() assert admin_userpermission_change(user_0['token'], user_1['u_id'], 1) == {}
def test_message_sendlater_usernotinchannel(): clear() test_user_0, test_user_1 = create_two_test_users() channel_name1 = channels_create(test_user_0['token'], "Main Channel", True) with pytest.raises(error.AccessError): message_sendlater(test_user_1['token'], channel_name1['channel_id'], message1, (datetime.now()).timestamp()+1)
def test_user_profile_setemail_existing(): clear() test_user0 = create_two_test_users()[0] with pytest.raises(InputError): user_profile_setemail(test_user0['token'], "*****@*****.**")