59 lines
2 KiB
Python
59 lines
2 KiB
Python
|
# -*- 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'})
|