class GatewayTests(unittest.TestCase):
    def setUp(self):
        self.request = mock.Mock()
        self.request.activity = mock.Mock(spec=Client)
        self.controller = ActivityGateway()

    def test_health_check(self):
        self.controller.is_healthy(self.request)

        self.assertTrue(self.request.activity.is_healthy.called)

    def test_health_check_failed(self):
        self.request.activity.is_healthy.side_effect = Exception

        with self.assertRaises(HTTPException):
            self.controller.is_healthy(self.request)

    def test_pixel(self):
        self.request.matchdict = {"context_id": "context"}
        self.request.user_agent = "Mozilla/5.0"
        self.request.remote_addr = "1.2.3.4"

        self.controller.pixel(self.request)

        self.request.activity.record_activity.assert_called_with(
            "context", "6abbd3bc1a661ad396626b8c77b2ba6e52943782")
class GatewayTests(unittest.TestCase):
    def setUp(self):
        self.request = mock.Mock()
        self.request.activity = mock.Mock(spec=Client)
        self.controller = ActivityGateway()

    def test_health_check(self):
        self.controller.is_healthy(self.request)

        self.assertTrue(self.request.activity.is_healthy.called)

    def test_health_check_failed(self):
        self.request.activity.is_healthy.side_effect = Exception

        with self.assertRaises(HTTPException):
            self.controller.is_healthy(self.request)

    def test_pixel(self):
        self.request.matchdict = {"context_id": "context"}
        self.request.user_agent = "Mozilla/5.0"
        self.request.remote_addr = "1.2.3.4"

        self.controller.pixel(self.request)

        self.request.activity.record_activity.assert_called_with(
            "context", "6abbd3bc1a661ad396626b8c77b2ba6e52943782")
 def setUp(self):
     self.request = mock.Mock()
     self.request.activity = mock.Mock(spec=Client)
     self.controller = ActivityGateway()
 def setUp(self):
     self.request = mock.Mock()
     self.request.activity = mock.Mock(spec=Client)
     self.controller = ActivityGateway()