def test_item_should_duplicate_itself(duplicate_item, get_items, get_me): # Arrange id = '2' name = 'Test Item 01 Dupe' get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{ 'id': '1', 'name': 'Test Item 01', 'board': { 'id': '1', 'name': 'Test Board' } }] duplicate_item.return_value = {'id': id, 'name': name} client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act duplicate = item.duplicate() # Assert ok_(duplicate) eq_(duplicate.id, id) eq_(duplicate.name, name)
def test_item_should_remove_files(change_column_value, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{ 'id': '1', 'name': 'Test Item 01', 'board': { 'id': '1' } }] change_column_value.return_value = get_items.return_value[0] client = MondayClient(USERNAME, '', '') item = client.get_items()[0] file_column = cv.create_column_value(ColumnType.file, id='files', title='Files') # Act item = item.remove_files(file_column) # Assert ok_(item != None) eq_(item.id, '1') eq_(item.name, 'Test Item 01') eq_(item.board.id, '1')
def test_item_should_clear_item_updates(clear_item_updates, get_items, get_me): # Arrange id = '1' get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{ 'id': id, 'updates': [{ 'id': '2', 'item_id': '1', 'creator_id': '1', 'replies': [{ 'id': '3', 'creator_id': '1' }] }] }] clear_item_updates.return_value = {'id': id, 'updates': []} client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act updated_item = item.clear_updates() # Assert ok_(updated_item) eq_(updated_item.id, id) eq_(len(updated_item.updates), 0)
def process_updates(jobs, board_name='Jobs'): client = MondayClient('*****@*****.**', TOKEN, TOKEN) board = client.get_board(name=board_name) count = 0 for group in board.get_groups(): if group.title in SKIP_GROUPS: continue for item in group.get_items(): if item.name in jobs: print('\r[{}] Updating: {}'.format(count, item.name), end='') update_vals = list() for k, v in jobs[item.name].items(): col_id, col_type = col_map[k] if v is None: kwargs = {} elif col_type is ColumnType.date: kwargs = {'date': v.date().isoformat()} else: kwargs = {'value': v} col = create_column_value(col_id, col_type, **kwargs) update_vals.append(col) item.change_multiple_column_values(column_values=update_vals) logger.info("Updating {}: {}".format(item.name, log_vals(update_vals))) count += 1 else: logger.info("Not in active jobs: {}".format(item.name)) print('\n')
def test_item_should_change_multiple_column_values_with_column_value_list( change_multiple_column_value, get_board, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 01'}] get_board.return_value = en.Board(id='1', name='Test Board 01') change_multiple_column_value.return_value = { 'id': '1', 'name': 'Test Item 01' } client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act column_value = cv.create_column_value(ColumnType.text, id='text_column_01', title='Text Column 01', text='Hello, world!', value=json.dumps('Hello, world!')) item = item.change_multiple_column_values([column_value]) # Assert ok_(item != None) eq_(item.name, 'Test Item 01')
def test_item_should_get_column_value_with_extra_id(get_column_values, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 1'}] client = MondayClient(USERNAME, '', '') item = client.get_items()[0] get_column_values.return_value = [ cv.LongTextValue( **{ 'id': 'text_column_01', 'title': 'Text Column 01', 'text': 'Hello, Grandma', 'value': json.dumps({ 'id': '1', 'text': 'Hello, Grandma' }) }) ] # Act column_value = item.get_column_value(title='Text Column 01') # Assert ok_(column_value != None) eq_(column_value.title, 'Text Column 01') eq_(column_value.long_text, 'Hello, Grandma') eq_(type(column_value), cv.LongTextValue)
def test_item_should_get_column_values(get_columns, get_board, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 1'}] client = MondayClient(USERNAME, '', '') item = client.get_items()[0] get_board.return_value = en.Board(**{'id': '1', 'name': 'Test Board 1'}) get_columns.return_value = [ en.Column({ 'id': 'text_column_01', 'type': 'text' }) ] get_items.return_value = [{ 'id': '1', 'column_values': [{ 'id': 'text_column_01', 'title': 'Text Column 01', 'value': json.dumps('Hello, Grandma') }] }] # Act column_values = item.get_column_values() # Assert ok_(column_values != None) eq_(len(column_values), 1) eq_(column_values[0].title, 'Text Column 01') eq_(column_values[0].text_value, 'Hello, Grandma')
def test_should_create_workspace(get_me, create_workspace): # Arrange id = '12345' name = 'Workspace' kind = WorkspaceKind.open description = 'This is a test workspace.' get_me.return_value = GET_ME_RETURN_VALUE create_workspace.return_value = { 'id': id, 'name': name, 'kind': kind.name, 'description': description } client = MondayClient(USERNAME, '', '') # Act workspace = client.create_workspace(name, kind, description=description) # Assert ok_(workspace != None) eq_(workspace.id, id) eq_(workspace.name, name) eq_(workspace.kind, kind.name) eq_(workspace.description, description)
def test_item_should_get_list_of_item_updates(get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 01'}] client = MondayClient(USERNAME, '', '') item = client.get_items()[0] get_items.return_value = [{ 'id': '1', 'updates': [{ 'id': '2', 'item_id': '1', 'creator_id': '1', 'replies': [{ 'id': '3', 'creator_id': '1' }] }] }] # Act updates = item.get_updates() # Assert ok_(updates != None) eq_(len(updates), 1) eq_(updates[0].to_primitive(), item.updates[0].to_primitive()) eq_(len(updates[0].replies), 1)
def test_item_should_add_file(add_file_to_column, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{ 'id': '1', 'name': 'Test Item 01', 'board': { 'id': '1' } }] add_file_to_column.return_value = { 'id': '12345', 'name': '33.jpg', 'url': 'https://test.monday.com/12345/33.jpg' } client = MondayClient(USERNAME, '', '') item = client.get_items()[0] file_column = cv.create_column_value(ColumnType.file, id='files', title='Files') # Act asset = item.add_file(file_column, '/Users/test/33.jpg') # Assert ok_(asset != None) eq_(asset.id, '12345') eq_(asset.name, '33.jpg') eq_(asset.url, 'https://test.monday.com/12345/33.jpg')
def test_should_fail_to_retrieve_assets_with_no_ids(get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE client = MondayClient(USERNAME, '', '') # Act client.get_assets([])
def test_should_fail_to_retrieve_single_board_due_to_too_many_parameters( get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE client = MondayClient(USERNAME, '', '') # Act client.get_board(id='1', name='Test Board 1')
def test_board_should_fail_to_retrieve_a_group_from_too_many_parameters(create_board, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE create_board.return_value = {'id': '1', 'name': 'Test Board 1'} client = MondayClient(USERNAME, '', '') board = client.create_board('Test Board 1', BoardKind.public) # Act board.get_group(id='group1', title='Group 1')
def test_should_fail_from_too_many_parameters(create_board, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE create_board.return_value = {'id': '1', 'name': 'Test Board 1'} client = MondayClient(USERNAME, '', '') board = client.create_board('Test Board 1', BoardKind.public) # Act board.get_column_value(id='text_column_01', title='Text Column 01')
def test_item_should_fail_to_retrieve_column_value_from_too_many_parameters( get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 1'}] client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act item.get_column_value(id='text_column_01', title='Text Column 01')
def test_item_should_fail_to_update_column_value_with_invalid_column_value_with_id( get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 1'}] client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act item.change_column_value(column_value=[1, 2, 3, 4, 5])
def test_item_should_fail_to_update_column_value_with_invalid_column_value( get_board, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 1'}] get_board.return_value = en.Board(creds=None, id='1', name='Test Board 1') client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act item.change_column_value(column_value='5')
def test_should_fail_to_create_webhook_from_invalid_event(create_board, get_me): # Arrange board_id = '1' get_me.return_value = GET_ME_RETURN_VALUE create_board.return_value = {'id': board_id, 'name': 'Test Board 1'} client = MondayClient(USERNAME, '', '') board = client.create_board('Test Board 1', BoardKind.public) # Act board.create_webhook('http://test.webhook.com/webhook/test', WebhookEventType.create_item, columnId='test_1')
def test_should_get_items(get_me, get_items): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 1'}] client = MondayClient(USERNAME, '', '') # Act items = client.get_items() # Assert ok_(items != None) ok_(len(items), 1)
def test_should_retrieve_me(get_me, get_me_client): # Arrange name = 'User 2' get_me.return_value = GET_ME_RETURN_VALUE get_me_client.return_value = {'id': '1', 'name': name, 'email': USERNAME} client = MondayClient(USERNAME, '', '') # Act user = client.get_me() # Assert ok_(user != None) eq_(user.email, USERNAME)
def test_should_archive_a_board(get_me, archive_board): # Arrange id = '1' get_me.return_value = GET_ME_RETURN_VALUE archive_board.return_value = {'id': id} client = MondayClient(USERNAME, '', '') # Act board = client.archive_board(id) # Assert ok_(board != None) eq_(board.id, id)
def test_should_retrieve_list_of_teams(get_me, get_teams): # Arrange name = 'User 1' get_me.return_value = GET_ME_RETURN_VALUE get_teams.return_value = [{'id': '1', 'name': name}] client = MondayClient(USERNAME, '', '') # Act teams = client.get_teams() # Assert ok_(teams != None) eq_(len(teams), 1) eq_(teams[0].name, name)
def test_should_retrieve_list_of_tags(get_me, get_tags): # Arrange name = 'Tag 1' get_me.return_value = GET_ME_RETURN_VALUE get_tags.return_value = [{'id': '1', 'name': name, 'color': 'Black'}] client = MondayClient(USERNAME, '', '') # Act tags = client.get_tags() # Assert ok_(tags != None) eq_(len(tags), 1) eq_(tags[0].name, name)
def test_item_should_delete_item(delete_item, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 01'}] delete_item.return_value = {'id': '1', 'name': 'Test Item 01'} client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act item = item.delete() # Assert ok_(item != None) eq_(item.name, 'Test Item 01')
def test_item_should_move_item_to_group(move_item_to_group, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 01'}] move_item_to_group.return_value = {'id': '1', 'name': 'Test Item 01'} client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act item = item.move_to_group('group_01') # Assert ok_(item != None) eq_(item.name, 'Test Item 01')
def test_should_create_a_notification(get_me, create_notification): # Arrange text = 'Text 1' get_me.return_value = GET_ME_RETURN_VALUE create_notification.return_value = {'id': '1', 'text': text} client = MondayClient(USERNAME, '', '') # Act notification = client.create_notification(text, '1', '2', NotificationTargetType.Post) # Assert ok_(notification != None) ok_(notification.text, text)
def test_user_should_send_a_notification(create_notification, get_users, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_users.return_value = [{'id': '1', 'email': '*****@*****.**'}] create_notification.return_value = {'id': '1', 'text': 'Text 1'} client = MondayClient(USERNAME, '', '') user = client.get_users()[0] # Act notification = user.send_notification('Text 1', '2', NotificationTargetType.Post) # Assert ok_(notification != None) ok_(notification.text, 'Text 1')
def test_item_should_add_update(create_update, get_items, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_items.return_value = [{'id': '1', 'name': 'Test Item 01'}] create_update.return_value = {'id': '1', 'body': 'This is a text body'} client = MondayClient(USERNAME, '', '') item = client.get_items()[0] # Act update = item.add_update('This is a text body') # Assert ok_(update != None) eq_(update.body, 'This is a text body')
def test_user_should_get_the_account(get_users, get_me): # Arrange get_me.return_value = GET_ME_RETURN_VALUE get_users.return_value = [{'id': '1', 'email': '*****@*****.**'}] client = MondayClient(USERNAME, '', '') user = client.get_users()[0] get_users.return_value = [{'id': '1', 'account': {'id': '1', 'name': 'Account 1', 'first_day_of_the_week': None, 'show_timeline_weekends': None, 'slug': None}}] # Act account = user.get_account() # Assert ok_(account != None) eq_(account.name, 'Account 1')
def test_should_retrieve_a_list_of_boards(get_me, get_boards): # Arrange test_boards = [{'id': '1', 'name': 'Board 1'}] get_me.return_value = GET_ME_RETURN_VALUE get_boards.return_value = test_boards client = MondayClient(USERNAME, '', '') # Act boards = client.get_boards() # Assert ok_(boards != None) eq_(len(boards), 1) eq_(boards[0].id, test_boards[0]['id']) eq_(boards[0].name, test_boards[0]['name'])