def test_init(self, patch_get_server_current_ymd, patch_clear_current_radius_accounting_file): server = MagicMock() server.shell.return_value.resp = "No such file or directory" with self.assertRaises(NotADirectoryError) as context: freeradiusaccounting.FreeRadiusAccounting(server) self.assertIn("Specified radius accounting data path ", context.exception.args[0]) server.shell.return_value.resp = "" path = "/usr/loca/var/log/radius/redirect" freeradiusaccounting.FreeRadiusAccounting(server, path=path)
def test_get_radius_accounting_records( self, patch_get_server_current_ymd, patch_detect_acct_file_change, patch_clear_current_radius_accounting_file): server = MagicMock() server.shell.return_value.resp = "" fra = freeradiusaccounting.FreeRadiusAccounting(server) acct_file = "/path/to/here" fra.server.shell.return_value.resp = "\n Acct-Status-Type=Accounting-On\n Acct-Session-Id=value\n\n Acct-Status-Type=Accounting-Off\n Acct-Session-Id=value\n\n" self.assertIsInstance( fra.get_radius_accounting_records(acct_file=acct_file), dict) self.assertIsInstance( fra.get_radius_accounting_records(asi="value", ast="Accounting-On", acct_file=acct_file), list) self.assertEqual( fra.get_radius_accounting_records(asi="value", ast="wrong value", acct_file=acct_file), []) self.assertIsInstance( fra.get_radius_accounting_records(asi="value", acct_file=acct_file), dict) self.assertEqual( fra.get_radius_accounting_records(asi="wrong value", acct_file=acct_file), {})
def test_detect_acct_file_change( self, patch_get_server_current_ymd, patch_file_exists, patch_clear_current_radius_accounting_file): server = MagicMock() server.shell.return_value.resp = "" fra = freeradiusaccounting.FreeRadiusAccounting(server) fra.last_time = MagicMock() self.assertEqual(fra._detect_acct_file_change(), None)
def test_file_exists(self, patch_get_server_current_ymd, patch_clear_current_radius_accounting_file): server = MagicMock() server.shell.return_value.resp = "" fra = freeradiusaccounting.FreeRadiusAccounting(server) fra.server.shell.return_value.resp = "" self.assertTrue(fra._file_exists(MagicMock())) fra.server.shell.return_value.resp = "No such file or directory" self.assertFalse(fra._file_exists(MagicMock()))
def test_clear_current_radius_accounting_file( self, patch_file_exists, patch_detect_acct_file_change, patch_get_server_current_ymd): server = MagicMock() server.shell.return_value.resp = "" fra = freeradiusaccounting.FreeRadiusAccounting(server) fra.backup_before_clear = True self.assertEqual(fra.clear_current_radius_accounting_file(), None) fra.backup_before_clear = False self.assertEqual(fra.clear_current_radius_accounting_file(), None)
def test_get_server_current_ymd( self, patch_clear_current_radius_accounting_file): server = MagicMock() server.shell.return_value.resp = "19970908" fra = freeradiusaccounting.FreeRadiusAccounting(server) fra.server.shell.return_value.resp = "19970908" self.assertEqual(fra._get_server_current_ymd(), "19970908") fra.server.shell.return_value.resp = "" with self.assertRaises(Exception) as context: fra._get_server_current_ymd() self.assertIn("Failed to get radius server time", context.exception.args[0])