From 3cb0e4d72569fdc863965286ba208bbaecb1dd01 Mon Sep 17 00:00:00 2001 From: Alok Saldanha Date: Tue, 11 May 2021 07:25:50 -0400 Subject: [PATCH] added test for is_port_in_use --- tests/test_backend_cache.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/test_backend_cache.py diff --git a/tests/test_backend_cache.py b/tests/test_backend_cache.py new file mode 100644 index 0000000..ef631bd --- /dev/null +++ b/tests/test_backend_cache.py @@ -0,0 +1,28 @@ +import unittest +from unittest.mock import MagicMock, patch + +from cellxgene_gateway.backend_cache import is_port_in_use + + +class TestIsPortInUse(unittest.TestCase): + @patch("socket.socket") + def test_GIVEN_free_port_THEN_returns_true(self, socketMock): + connectMock = socketMock() + connectMock.connect_ex.return_value = 0 + connectMock.__enter__.return_value = connectMock + self.assertEqual(is_port_in_use(123), True) + self.assertTrue(connectMock.__enter__.calledOnce) + self.assertTrue(connectMock.__exit__.calledOnce) + self.assertTrue(connectMock.connect_ex.calledOnceWith("a")) + self.assertTrue(socketMock.calledOnceWith("a")) + + @patch("socket.socket") + def test_GIVEN_used_port_THEN_returns_false(self, socketMock): + connectMock = socketMock() + connectMock.__enter__.return_value = connectMock + connectMock.connect_ex.return_value = 1 + self.assertTrue(connectMock.__enter__.calledOnce) + self.assertTrue(connectMock.__exit__.calledOnce) + self.assertTrue(connectMock.connect_ex.calledOnceWith("a")) + self.assertTrue(socketMock.calledOnceWith("a")) + self.assertEqual(is_port_in_use(123), False)