# -*- coding: utf-8; -*- import socket from unittest.mock import patch from wuttjamaican.testing import DataTestCase from wutta_continuum import conf as mod class TestWuttaContinuumConfigExtension(DataTestCase): def make_extension(self): return mod.WuttaContinuumConfigExtension() def test_startup(self): ext = self.make_extension() with patch.object(mod, 'make_versioned') as make_versioned: with patch.object(mod, 'configure_mappers') as configure_mappers: # nothing happens by default ext.startup(self.config) make_versioned.assert_not_called() configure_mappers.assert_not_called() # but will if we enable it in config self.config.setdefault('wutta_continuum.enable_versioning', 'true') ext.startup(self.config) make_versioned.assert_called_once() configure_mappers.assert_called_once_with() class TestWuttaContinuumPlugin(DataTestCase): def make_plugin(self): return mod.WuttaContinuumPlugin() def test_remote_addr(self): plugin = self.make_plugin() with patch.object(socket, 'gethostbyname', return_value='127.0.0.1'): self.assertEqual(plugin.get_remote_addr(None, self.session), '127.0.0.1') def test_user_id(self): plugin = self.make_plugin() self.assertIsNone(plugin.get_user_id(None, self.session)) def test_transaction_args(self): plugin = self.make_plugin() with patch.object(socket, 'gethostbyname', return_value='127.0.0.1'): self.assertEqual(plugin.transaction_args(None, self.session), {'remote_addr': '127.0.0.1'}) with patch.object(plugin, 'get_user_id', return_value='some-random-uuid'): self.assertEqual(plugin.transaction_args(None, self.session), {'remote_addr': '127.0.0.1', 'user_id': 'some-random-uuid'})