from unittest.mock import MagicMock

from db.channel_attribute_provision import _assign_magento_attribute_to_default_set


def test_assign_magento_attribute_to_default_set_treats_already_exists_as_ok():
    api = MagicMock()
    api.add_attribute_to_attribute_set.return_value = (400, "Attribute already exists in group")
    errors = []

    ok = _assign_magento_attribute_to_default_set(api, 4, "door_style", errors)

    assert ok is True
    assert errors == []
    api.add_attribute_to_attribute_set.assert_called_once_with(4, "door_style")


def test_assign_magento_attribute_to_default_set_records_real_error():
    api = MagicMock()
    api.add_attribute_to_attribute_set.return_value = (500, "boom")
    errors = []

    ok = _assign_magento_attribute_to_default_set(api, 4, "door_style", errors)

    assert ok is False
    assert errors == [
        "Assign door_style: failed to assign to default attribute set 4 (HTTP 500 - boom)"
    ]
