From 988a88756232fc70eca7c4d6c21ddc68faee35a5 Mon Sep 17 00:00:00 2001 From: olamidepeterojo Date: Wed, 2 Apr 2025 20:58:07 +0000 Subject: [PATCH] create unit test for test_absolute_limits This commit will add unit test to cover tenant_absolute_limits in the manila_api module. It mocks the limit object and handles the special case of infinite values. Signed-off-by: olamidepeterojo Closes-Bug: #1896534 Change-Id: I656bd3fe0f7b24305e913bd20068e0c18c370b2a Signed-off-by: olamidepeterojo --- manila_ui/tests/api/test_manila.py | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/manila_ui/tests/api/test_manila.py b/manila_ui/tests/api/test_manila.py index f0eaf8ed..e955dafe 100644 --- a/manila_ui/tests/api/test_manila.py +++ b/manila_ui/tests/api/test_manila.py @@ -21,6 +21,23 @@ from manila_ui.api import manila as api from manila_ui.tests import helpers as base +class FakeLimit: + """Fake object to simulate Manila absolute limits.""" + def __init__(self, name, value): + self.name = name + self.value = value + + +def get_fake_limits(): + """Returns a list of fake limit objects.""" + return [ + FakeLimit("maxTotalShares", 50), + FakeLimit("totalSharesUsed", 10), + FakeLimit("maxTotalShareGigabytes", -1), # Unlimited quota + FakeLimit("totalShareGigabytesUsed", 200), + ] + + @ddt.ddt class ManilaApiTests(base.APITestCase): @@ -898,6 +915,20 @@ class ManilaApiTests(base.APITestCase): mock_reset_state = self.manilaclient.share_replicas.reset_replica_state mock_reset_state.assert_called_once_with(replica, state) + def test_tenant_absolute_limits(self): + fake_limits = get_fake_limits() + # Mock `manilaclient().limits.get().absolute` + self.manilaclient.limits.get.return_value.absolute = fake_limits + result = api.tenant_absolute_limits(self.request) + # Expected dictionary conversion + expected_result = { + "maxTotalShares": 50, + "totalSharesUsed": 10, + "maxTotalShareGigabytes": float("inf"), # will convert -1 to inf + "totalShareGigabytesUsed": 200, + } + self.assertEqual(result, expected_result) + self.manilaclient.limits.get.assert_called_once() # Share instance tests def test_share_instance_list(self):