Skip to content

Commit

Permalink
Merge pull request #6159 from simon-mazenoux/refactor-moving-tests-fr…
Browse files Browse the repository at this point in the history
…om-unittest-to-pytest

[Integration] refactor: moving some tests from unittest to pytest
  • Loading branch information
fstagni authored Jun 14, 2022
2 parents aeffa62 + 02bec56 commit d8ec058
Show file tree
Hide file tree
Showing 6 changed files with 975 additions and 1,052 deletions.
181 changes: 82 additions & 99 deletions tests/Integration/ResourceStatusSystem/Test_FullChain.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,111 +52,94 @@
}
"""
# pylint: disable=invalid-name,wrong-import-position
# pylint: disable=missing-docstring,wrong-import-position

import unittest
import sys

import pytest
import DIRAC

DIRAC.initialize() # Initialize configuration

from DIRAC import gLogger
from DIRAC.ResourceStatusSystem.PolicySystem.PDP import PDP


class PDPTestCase(unittest.TestCase):
"""PDPTestCase"""

def setUp(self):
"""test case set up"""

gLogger.setLevel("DEBUG")

def tearDown(self):
"""clean up"""
pass


class PDPDecision_Success(PDPTestCase):
def test_site(self):

pdp = PDP()

# empty
pdp.setup(None)
res = pdp.takeDecision()
self.assertTrue(res["OK"])

# site
decisionParams = {
"element": "Site",
"name": "Site1",
"elementType": None,
"statusType": "ReadAccess",
"status": "Active",
"reason": None,
"tokenOwner": None,
}
pdp.setup(decisionParams)
res = pdp.takeDecision()
self.assertTrue(res["OK"])
self.assertEqual(res["Value"]["policyCombinedResult"]["Status"], "Banned")

# site2
decisionParams = {
"element": "Site",
"name": "Site2",
"elementType": "CE",
"statusType": "ReadAccess",
"status": "Active",
"domain": "test",
"reason": None,
"tokenOwner": None,
}
pdp.setup(decisionParams)
res = pdp.takeDecision()
self.assertTrue(res["OK"])
self.assertEqual(res["Value"]["policyCombinedResult"]["Status"], "Banned")

# mySE
decisionParams = {
"element": "Resource",
"name": "mySE",
"elementType": "StorageElement",
"statusType": "ReadAccess",
"status": "Active",
"reason": None,
"tokenOwner": None,
}
pdp.setup(decisionParams)
res = pdp.takeDecision()
self.assertTrue(res["OK"])
self.assertEqual(res["Value"]["policyCombinedResult"]["Status"], "Active")

# SE1
decisionParams = {
"element": "Resource",
"name": "SE1",
"elementType": "StorageElement",
"statusType": "ReadAccess",
"status": "Active",
"reason": None,
"tokenOwner": None,
}
pdp.setup(decisionParams)
res = pdp.takeDecision()
self.assertTrue(res["OK"])
self.assertEqual(res["Value"]["policyCombinedResult"]["Status"], "Banned")


################################################################################


if __name__ == "__main__":
suite = unittest.defaultTestLoader.loadTestsFromTestCase(PDPTestCase)
suite.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(PDPDecision_Success))
testResult = unittest.TextTestRunner(verbosity=2).run(suite)
sys.exit(not testResult.wasSuccessful())

# EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF#EOF
gLogger.setLevel("DEBUG")
pdp = PDP()


def test_takeDecision_noDecisionParams():
# Arrange
pdp.setup()

# Act
result = pdp.takeDecision()

# Assert
assert result["OK"] is True, result["Message"]


@pytest.mark.parametrize(
"decisionParams, status",
[
(
{
"element": "Site",
"name": "Site1",
"elementType": None,
"statusType": "ReadAccess",
"status": "Active",
"reason": None,
"tokenOwner": None,
},
"Banned",
),
(
{
"element": "Site",
"name": "Site2",
"elementType": "CE",
"statusType": "ReadAccess",
"status": "Active",
"domain": "test",
"reason": None,
"tokenOwner": None,
},
"Banned",
),
(
{
"element": "Resource",
"name": "mySE",
"elementType": "StorageElement",
"statusType": "ReadAccess",
"status": "Active",
"reason": None,
"tokenOwner": None,
},
"Active",
),
(
{
"element": "Resource",
"name": "SE1",
"elementType": "StorageElement",
"statusType": "ReadAccess",
"status": "Active",
"reason": None,
"tokenOwner": None,
},
"Banned",
),
],
)
def test_takeDecision_decisionParams(decisionParams, status):

# Arrange
pdp.setup(decisionParams)

# Act
res = pdp.takeDecision()

# Assert
assert res["OK"] is True, res["Message"]
assert res["Value"]["policyCombinedResult"]["Status"] == status
2 changes: 1 addition & 1 deletion tests/Integration/ResourceStatusSystem/Test_Publisher.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
It supposes that the RSS DBs are present, and that the service is running
"""
# pylint: disable=invalid-name,wrong-import-position
# pylint: disable=wrong-import-position

import DIRAC

Expand Down
Loading

0 comments on commit d8ec058

Please sign in to comment.