Exemple #1
0
 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)
Exemple #2
0
    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), {})
Exemple #3
0
    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)
Exemple #4
0
    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()))
Exemple #5
0
    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)
Exemple #6
0
    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])