44
55import pytest
66from sonic_ax_impl .mibs .ietf .rfc2737 import PhysicalTableMIBUpdater
7-
7+ from sonic_ax_impl . mibs . ietf . rfc2737 import FabricCardCacheUpdater
88
99if sys .version_info .major == 3 :
1010 from unittest import mock
@@ -30,13 +30,15 @@ def test_PhysicalTableMIBUpdater_exception_in_reinit_data_wont_block_reinit_iter
3030 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanDrawerCacheUpdater.reinit_data' ) as mocked_fan_drawer_reinit_data ,
3131 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanCacheUpdater.reinit_data' ) as mocked_fan_cache_reinit_data ,
3232 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.ThermalCacheUpdater.reinit_data' ) as mocked_thermal_reinit_data ,
33+ mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FabricCardCacheUpdater.reinit_data' ) as mocked_fc_reinit_data ,
3334 mock .patch ('sonic_ax_impl.mibs.cancel_redis_pubsub' ) as mocked_cancel_redis_pubsub ):
3435 updater .reinit_data ()
3536 mocked_xcvr_reinit_data .assert_called ()
3637 mocked_psu_reinit_data .assert_called ()
3738 mocked_fan_drawer_reinit_data .assert_called ()
3839 mocked_fan_cache_reinit_data .assert_called ()
3940 mocked_thermal_reinit_data .assert_called ()
41+ mocked_fc_reinit_data .assert_called ()
4042 mocked_cancel_redis_pubsub .assert_called ()
4143 assert str (excinfo .value ) == "[Exception('mocked error')]"
4244
@@ -53,13 +55,15 @@ def test_PhysicalTableMIBUpdater_exception_in_reinit_data_wont_block_reinit_iter
5355 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.PsuCacheUpdater.reinit_data' ) as mocked_psu_reinit_data ,
5456 mock .patch (
5557 'sonic_ax_impl.mibs.ietf.rfc2737.FanDrawerCacheUpdater.reinit_data' ) as mocked_fan_drawer_reinit_data ,
58+ mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FabricCardCacheUpdater.reinit_data' ) as mocked_fc_reinit_data ,
5659 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanCacheUpdater.reinit_data' ) as mocked_fan_cache_reinit_data ,
5760 mock .patch ('sonic_ax_impl.mibs.cancel_redis_pubsub' ) as mocked_cancel_redis_pubsub ):
5861 updater .reinit_data ()
5962 mocked_xcvr_reinit_data .assert_called ()
6063 mocked_psu_reinit_data .assert_called ()
6164 mocked_fan_drawer_reinit_data .assert_called ()
6265 mocked_fan_cache_reinit_data .assert_called ()
66+ mocked_fc_reinit_data .assert_called ()
6367 mocked_thermal_reinit_data .assert_called ()
6468 mocked_cancel_redis_pubsub .assert_called ()
6569 assert str (excinfo .value ) == "[Exception('mocked error')]"
@@ -79,13 +83,15 @@ def test_PhysicalTableMIBUpdater_runtime_exc_in_reinit_data_wont_block_reinit_it
7983 'sonic_ax_impl.mibs.ietf.rfc2737.FanDrawerCacheUpdater.reinit_data' ) as mocked_fan_drawer_reinit_data ,
8084 mock .patch (
8185 'sonic_ax_impl.mibs.ietf.rfc2737.FanCacheUpdater.reinit_data' ) as mocked_fan_cache_reinit_data ,
86+ mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FabricCardCacheUpdater.reinit_data' ) as mocked_fc_reinit_data ,
8287 mock .patch ('sonic_ax_impl.mibs.cancel_redis_pubsub' ) as mocked_cancel_redis_pubsub ):
8388 updater .reinit_data ()
8489 mocked_thermal_reinit_data .assert_called ()
8590 mocked_xcvr_reinit_data .assert_called ()
8691 mocked_psu_reinit_data .assert_called ()
8792 mocked_fan_drawer_reinit_data .assert_called ()
8893 mocked_fan_cache_reinit_data .assert_called ()
94+ mocked_fc_reinit_data .assert_called ()
8995 mocked_cancel_redis_pubsub .assert_called ()
9096 assert str (excinfo .value ) == "[RuntimeError('mocked runtime error')]"
9197
@@ -102,13 +108,15 @@ def test_PhysicalTableMIBUpdater_runtime_exc_in_reinit_data_wont_block_reinit_it
102108 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanDrawerCacheUpdater.reinit_data' ) as mocked_fan_drawer_reinit_data ,
103109 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanCacheUpdater.reinit_data' ) as mocked_fan_cache_reinit_data ,
104110 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.ThermalCacheUpdater.reinit_data' ) as mocked_thermal_reinit_data ,
111+ mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FabricCardCacheUpdater.reinit_data' ) as mocked_fc_reinit_data ,
105112 mock .patch ('sonic_ax_impl.mibs.cancel_redis_pubsub' ) as mocked_cancel_redis_pubsub ):
106113 updater .reinit_data ()
107114 mocked_xcvr_reinit_data .assert_called ()
108115 mocked_psu_reinit_data .assert_called ()
109116 mocked_fan_drawer_reinit_data .assert_called ()
110117 mocked_fan_cache_reinit_data .assert_called ()
111118 mocked_thermal_reinit_data .assert_called ()
119+ mocked_fc_reinit_data .assert_called ()
112120 mocked_cancel_redis_pubsub .assert_called ()
113121 assert str (exc_info .value ) == "[RuntimeError('mocked runtime error')]"
114122
@@ -127,12 +135,29 @@ def test_PhysicalTableMIBUpdater_multi_exception(self, mocked_xcvr_reinit_data,
127135 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.PsuCacheUpdater.reinit_data' ) as mocked_psu_reinit_data ,
128136 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanDrawerCacheUpdater.reinit_data' ) as mocked_fan_drawer_reinit_data ,
129137 mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FanCacheUpdater.reinit_data' ) as mocked_fan_cache_reinit_data ,
138+ mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.FabricCardCacheUpdater.reinit_data' ) as mocked_fc_reinit_data ,
130139 mock .patch ('sonic_ax_impl.mibs.cancel_redis_pubsub' ) as mocked_cancel_redis_pubsub ):
131140 updater .reinit_data ()
132141 mocked_xcvr_reinit_data .assert_called ()
133142 mocked_psu_reinit_data .assert_called ()
134143 mocked_fan_drawer_reinit_data .assert_called ()
135144 mocked_fan_cache_reinit_data .assert_called ()
145+ mocked_fc_reinit_data .assert_called ()
136146 mocked_thermal_reinit_data .assert_called ()
137147 mocked_cancel_redis_pubsub .assert_called ()
138148 assert str (exc_info .value ) == "[RuntimeError('mocked runtime error'), Exception('mocked error')]"
149+
150+
151+ class TestFabricCardCacheUpdater (TestCase ):
152+ @mock .patch ('sonic_ax_impl.mibs.Namespace.dbs_get_all' , mock .MagicMock (return_value = ({"model" : "Model000" , "presence" : "True" , "serial" : "Serial000" , "is_replaceable" : "False" })))
153+ @mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.PhysicalEntityCacheUpdater.get_physical_relation_info' , mock .MagicMock (return_value = ({"position_in_parent" : 0 , "parent_name" : "Chassis 1" })))
154+ def test_update_entity_cache (self ):
155+ updater = PhysicalTableMIBUpdater ()
156+ fc_updater = FabricCardCacheUpdater (updater )
157+ update_entity_cache = getattr (fc_updater , '_update_entity_cache' )
158+
159+ with (mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.PhysicalTableMIBUpdater.set_phy_contained_in' ) as mocked_phy_contained_in ,
160+ mock .patch ('sonic_ax_impl.mibs.ietf.rfc2737.PhysicalTableMIBUpdater.set_phy_fru' ) as mocked_set_phy_fru ):
161+ update_entity_cache ('N/A' )
162+ mocked_phy_contained_in .assert_called ()
163+ mocked_set_phy_fru .assert_called ()
0 commit comments