blob: fa25106017dcc5bd39b43ceeefabbeb3c3794ad7 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
from __future__ import annotations
from airflow.utils.operator_resources import Resources
class TestResources:
def test_resource_eq(self):
r = Resources(cpus=0.1, ram=2048)
assert r not in [{}, [], None]
assert r == r
r2 = Resources(cpus=0.1, ram=2048)
assert r == r2
assert r2 == r
r3 = Resources(cpus=0.2, ram=2048)
assert r != r3
def test_to_dict(self):
r = Resources(cpus=0.1, ram=2048, disk=1024, gpus=1)
assert r.to_dict() == {
"cpus": {"name": "CPU", "qty": 0.1, "units_str": "core(s)"},
"ram": {"name": "RAM", "qty": 2048, "units_str": "MB"},
"disk": {"name": "Disk", "qty": 1024, "units_str": "MB"},
"gpus": {"name": "GPU", "qty": 1, "units_str": "gpu(s)"},
}