Files
mongo/buildscripts/tests/test_validate_mongocryptd.py
Zack Winter fbc2f1ea04 SERVER-111295 [v8.0] Set python as formatter in format_multirun (#41681)
GitOrigin-RevId: 0a5f595c13f329cc64a37f58e7369dd9469ee848
2026-01-15 19:55:28 +00:00

74 lines
2.2 KiB
Python

"""Unit tests for the validate_mongocryptd script."""
from __future__ import absolute_import
import unittest
from mock import MagicMock, patch
from buildscripts import validate_mongocryptd as under_test
NS = "buildscripts.validate_mongocryptd"
def ns(relative_name): # pylint: disable=invalid-name
"""Return a full name from a name relative to the test module"s name space."""
return NS + "." + relative_name
class TestCanValidationBeSkipped(unittest.TestCase):
def test_non_existing_variant_can_be_skipped(self):
mock_evg_config = MagicMock()
mock_evg_config.get_variant.return_value = None
self.assertTrue(
under_test.can_validation_be_skipped(mock_evg_config, "variant")
)
def test_variant_with_no_push_task_can_be_skipped(self):
mock_evg_config = MagicMock()
mock_evg_config.get_variant.return_value.task_names = ["task 1", "task 2"]
self.assertTrue(
under_test.can_validation_be_skipped(mock_evg_config, "variant")
)
def test_variant_with_push_task_cannot_be_skipped(self):
mock_evg_config = MagicMock()
mock_evg_config.get_variant.return_value.task_names = [
"task 1",
"push",
"task 2",
]
self.assertFalse(
under_test.can_validation_be_skipped(mock_evg_config, "variant")
)
class TestReadVariableFromYml(unittest.TestCase):
@patch(ns("open"))
@patch(ns("yaml"))
def test_variable_not_in_variables(self, yaml_mock, _):
mock_nodes = {
"variables": {},
}
yaml_mock.safe_load.return_value = mock_nodes
self.assertIsNone(under_test.read_variable_from_yml("filename", "variable"))
@patch(ns("open"))
@patch(ns("yaml"))
def test_variable_is_in_variables(self, yaml_mock, _):
search_key = "var 2"
expected_value = "value 2"
mock_nodes = {
"variables": [
{"var 1": "value 1"},
{search_key: expected_value},
{"var 3": "value 3"},
],
}
yaml_mock.safe_load.return_value = mock_nodes
self.assertEqual(
expected_value, under_test.read_variable_from_yml("filename", search_key)
)