示例#1
0
    def test_ingredient_add(self):
        """ Tests the add ingredient method. """
        widget = RecipeTableWidget()

        ingredient_name_0 = random_string()
        energy_value_0 = random_energy_value()
        ingredient_mass_0 = "100"

        ingredient_name_1 = random_string()
        energy_value_1 = random_energy_value()
        ingredient_mass_1 = "100"

        widget.add_ingredient(ingredient_name_0, energy_value_0,
                              ingredient_mass_0)

        self.assertEqual(widget.rowCount(), 1)
        self._assert_table_row(widget, 0, ingredient_name_0, energy_value_0,
                               ingredient_mass_0)

        widget.add_ingredient(ingredient_name_1, energy_value_1,
                              ingredient_mass_1)

        self.assertEqual(widget.rowCount(), 2)
        self._assert_table_row(widget, 0, ingredient_name_0, energy_value_0,
                               ingredient_mass_0)
        self._assert_table_row(widget, 1, ingredient_name_1, energy_value_1,
                               ingredient_mass_1)
示例#2
0
def test_post_authorized_with_description(client):
    # Init data
    user = _create_user(client)
    headers = create_headers(
        access_token=generate_access_token(user['id'])
    )

    category_id = 1
    data = {
        'name': 'My Item {}'.format(random_string(10)),
        'description': '{}'.format(random_string(100))
    }

    # Create item
    response = client.post(
        '/categories/{}/items'.format(category_id),
        headers=headers,
        data=json.dumps(data)
    )

    resp = json_response(response)

    # Check if server returns 200
    assert response.status_code == 200

    # Check if each dict contains these keys
    assert all(
        key in resp
        for key in ['id', 'name', 'description', 'updated', 'created']
    ) is True

    # Check if newly created item is has the same name
    assert resp['name'] == data['name']
    assert resp['description'] == data['description']
示例#3
0
def test_post_unauthorized(client):
    headers = create_headers()

    category_id = 1
    data = {
        'name': 'My Item ({})'.format(random_string(10))
    }

    # Create item
    response = client.post(
        '/categories/{}/items'.format(category_id),
        headers=headers,
        data=json.dumps(data)
    )

    resp = json_response(response)

    # Check if server returns 401
    assert response.status_code == 401

    # Check if each dict contains these keys
    assert all(
        key in resp
        for key in ['message', 'error_code']
    ) is True
示例#4
0
def test_post_authorized_invalid_input(client):
    # Init data
    user = _create_user(client)
    headers = create_headers(
        access_token=generate_access_token(user['id'])
    )

    category_id = 1
    combine_data = {
        'name': [None, '', '{}'.format(random_string(100))],
        'description': [None, '', 'ABC']
    }

    combinations = itertools.product(*combine_data.values())

    num_valid_combine = 0
    for combination in combinations:
        data = dict((k, v) for k, v in zip(combine_data.keys(), combination))

        # Create item
        response = client.post(
            '/categories/{}/items'.format(category_id),
            headers=headers,
            data=json.dumps(data)
        )

        num_valid_combine += 1 if response.status_code != 400 else 0

        # Check if valid combination counter always equals to 0 (all cases are invalid)
        assert num_valid_combine <= 1
示例#5
0
def test_put_authorized_not_owned_valid_data(client):
    # Init data
    category_id = 1

    user = _create_user(client)
    user2 = _create_user(client)

    headers = create_headers(
        access_token=generate_access_token(user['id'])
    )
    headers2 = create_headers(
        access_token=generate_access_token(user2['id'])
    )

    item = _create_item_in_category(client, headers, category_id)
    item_id = item['id']

    data = {
        'name': 'New Item Name ({})'.format(random_string(10))
    }

    # Update item
    response = client.put(
        '/categories/{}/items/{}'.format(category_id, item_id),
        headers=headers2,
        data=json.dumps(data)
    )

    # Check if server returns 403
    assert response.status_code == 403
示例#6
0
def test_post_authorized_unrecognized_field(client):
    # Init data
    user = _create_user(client)
    headers = create_headers(
        access_token=generate_access_token(user['id'])
    )

    category_id = 1
    data = {
        'id': 100,
        'name': 'My Item {}'.format(random_string(10))
    }

    # Create item
    response = client.post(
        '/categories/{}/items'.format(category_id),
        headers=headers,
        data=json.dumps(data)
    )

    resp = json_response(response)

    # Check if server returns 400
    assert response.status_code == 400

    # Check if each dict contains these keys
    assert all(
        key in resp
        for key in ['error_code', 'message']
    ) is True
示例#7
0
def test_put_authorized_invalid_data(client):
    # Init data
    category_id = 1

    user = _create_user(client)
    headers = create_headers(
        access_token=generate_access_token(user['id'])
    )
    item = _create_item_in_category(client, headers, category_id)
    item_id = item['id']

    data = {
        'name': 'New Item Name ({})'.format(random_string(100))
    }

    # Update item
    response = client.put(
        '/categories/{}/items/{}'.format(category_id, item_id),
        headers=headers,
        data=json.dumps(data)
    )

    resp = json_response(response)

    # Check if server returns 400
    assert response.status_code == 400

    # Check if each dict contains these keys
    assert all(
        key in resp
        for key in ['error_code', 'message']
    ) is True
    def test_should_build_configuration_using_given_file_when_is_provided(
            self, mock_open):
        expected_file_name = random_string(20)
        mock_open.return_value = self.file_pointer

        ConfigurationFactory.build(expected_file_name)

        mock_open.assert_called_with(expected_file_name, 'r')
示例#9
0
async def test_trigger_empty_from_loop(awx_client, pub: Client, sub: Client):
    await sub.subscribe(awx_client.TOPICS.changes)
    await asyncio.sleep(.2)
    template_name = random_string()
    await pub.publish(awx_client._params.topic_in, f'{template_name};{1}')
    response = await sub.get(5)
    no_template = {
        'source': 'awx_api',
        'error': NO_TEMPLATE_PATTERN.format(template_name)
    }
    assert json.loads(response) == no_template
示例#10
0
    def test_recipe_name(self):
        """ Tests the name method. """
        widget = RecipeNameWidget()

        input_data = random_string()

        for char in input_data:
            QTest.keyPress(widget.widget, char)
            QTest.keyRelease(widget.widget, char)

        self.assertEqual(widget.name(), input_data)
示例#11
0
    def test_recipe_get_text(self):
        """ Tests the get text method. """
        widget = RecipeTextWidget()

        input_data = [random_string(50) for _ in range(10)]

        for line in input_data:
            for char in line:
                QTest.keyPress(widget.widget, char)
                QTest.keyRelease(widget.widget, char)

            QTest.keyPress(widget.widget, Qt.Key.Key_Enter)
            QTest.keyRelease(widget.widget, Qt.Key.Key_Enter)

        self.assertEqual(widget.get_text(), "\n".join(input_data) + "\n")
示例#12
0
def alerta_service():
    return random_string(10)
示例#13
0
def alerta_api_key():
    return random_string(30)
示例#14
0
def awx_auth_token():
    return random_string(30)
示例#15
0
def influx_password():
    return random_string(30)
示例#16
0
async def test_get_not_existing_scenario(awx_client):
    _filter = single_template_filter(random_string())
    single = await awx_client.get_templates(_filter)
    assert single == []
 def test_should_throw_an_exception_when_structure_from_raw_input_is_not_valid(
         self):
     initial_time = random_string(5)
     with self.assertRaises(ValidationException):
         PaymentsConfigurationEntry('%s - 23:59 25 USD' % initial_time)
    command = parse_command(message)
    assert command == expected


@pytest.mark.parametrize('message', [
    '/status awx Destroy test host 5',
    '/status awx Scenario 1.5',
    '/status awx "Scenario 1" 2 some other arguments',
])
def test_parse_err(message):
    """Testing of handling exceptions during parsing command arguments"""
    with pytest.raises(CommandParsingError):
        parse_command(message)


@pytest.mark.parametrize('target', ['', random_string()])
@pytest.mark.asyncio
async def test_bot_status_awx(patched_bot, sub: Client, chat_id, target):
    await sub.subscribe(AWXApiSource.params().topic_in)
    await asyncio.sleep(.05)
    message_text = f'/status awx {target}'
    await patched_bot.handle_status(
        Message(text=message_text, chat=Chat(id=chat_id)))
    data = await sub.get(.1)
    assert data == f'{target};1'


def patched_message(text, chat_id):
    resp_queue = Queue()
    message = Message(text=text, chat=chat_id)
示例#19
0
 def test_should_raise_a_validation_exception_when_provided_value_is_not_valid(
         self):
     invalid_value = random_string(5)
     with self.assertRaises(ValidationException):
         DayTime(invalid_value)