def test_handle_tries_to_install_ubuntu_advantage_tools( self, m_install, m_cfg): """If ubuntu_advantage is provided, try installing ua-tools package.""" cfg = {'ubuntu_advantage': {'token': 'valid'}} mycloud = FakeCloud(None) handle('nomatter', cfg=cfg, cloud=mycloud, log=self.logger, args=None) m_install.assert_called_once_with(mycloud)
def test_handle_passes_credentials_and_services_to_configure_ua( self, m_install, m_configure_ua): """All ubuntu_advantage config keys are passed to configure_ua.""" cfg = {'ubuntu_advantage': {'token': 'token', 'enable': ['esm']}} handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) m_configure_ua.assert_called_once_with( token='token', enable=['esm'])
def test_handle_error_on_deprecated_commands_key_underscored(self): """Error when commands is present in ubuntu_advantage key.""" cfg = {'ubuntu_advantage': {'commands': 'nogo'}} with self.assertRaises(RuntimeError) as context_manager: handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'Deprecated configuration "ubuntu-advantage: commands" provided.' ' Expected "token"', str(context_manager.exception))
def test_handle_no_config(self, m_schema): """When no ua-related configuration is provided, nothing happens.""" cfg = {} handle('ua-test', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertIn( "DEBUG: Skipping module named ua-test, no 'ubuntu_advantage'" ' configuration found', self.logs.getvalue()) m_schema.assert_not_called()
def test_handle_no_config(self, m_maybe_install_ua_tools): """When no ua-related configuration is provided, nothing happens.""" cfg = {} handle("ua-test", cfg=cfg, cloud=None, log=self.logger, args=None) self.assertIn( "DEBUG: Skipping module named ua-test, no 'ubuntu_advantage'" " configuration found", self.logs.getvalue(), ) self.assertEqual(m_maybe_install_ua_tools.call_count, 0)
def test_handle_warns_on_deprecated_ubuntu_advantage_key_w_config( self, m_configure_ua): """Warning when ubuntu-advantage key is present with new config""" cfg = {'ubuntu-advantage': {'token': 'token', 'enable': ['esm']}} handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'WARNING: Deprecated configuration key "ubuntu-advantage"' ' provided. Expected underscore delimited "ubuntu_advantage";' ' will attempt to continue.', self.logs.getvalue().splitlines()[0]) m_configure_ua.assert_called_once_with(token='token', enable=['esm'])
def test_handle_warns_on_deprecated_ubuntu_advantage_key_w_config( self, m_configure_ua): """Warning when ubuntu-advantage key is present with new config""" cfg = {'ubuntu-advantage': {'token': 'token', 'enable': ['esm']}} handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'WARNING: Deprecated configuration key "ubuntu-advantage"' ' provided. Expected underscore delimited "ubuntu_advantage";' ' will attempt to continue.', self.logs.getvalue().splitlines()[0]) m_configure_ua.assert_called_once_with( token='token', enable=['esm'])
def test_handle_warns_on_deprecated_ubuntu_advantage_key_w_config( self, m_configure_ua): """Warning when ubuntu-advantage key is present with new config""" cfg = {"ubuntu-advantage": {"token": "token", "enable": ["esm"]}} handle("nomatter", cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'WARNING: Deprecated configuration key "ubuntu-advantage"' ' provided. Expected underscore delimited "ubuntu_advantage";' " will attempt to continue.", self.logs.getvalue().splitlines()[0], ) m_configure_ua.assert_called_once_with(token="token", enable=["esm"])
def test_handle_prefers_new_style_config( self, m_configure_ua): """ubuntu_advantage should be preferred over ubuntu-advantage""" cfg = { 'ubuntu-advantage': {'token': 'nope', 'enable': ['wrong']}, 'ubuntu_advantage': {'token': 'token', 'enable': ['esm']}, } handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'WARNING: Deprecated configuration key "ubuntu-advantage"' ' provided. Expected underscore delimited "ubuntu_advantage";' ' will attempt to continue.', self.logs.getvalue().splitlines()[0]) m_configure_ua.assert_called_once_with( token='token', enable=['esm'])
def test_handle_runs_commands_provided(self, m_install): """When commands are specified as a list, run them.""" outfile = self.tmp_path('output.log', dir=self.tmp) cfg = { 'ubuntu-advantage': { 'commands': ['echo "HI" >> %s' % outfile, 'echo "MOM" >> %s' % outfile] } } mock_path = '%s.sys.stderr' % MPATH with mock.patch(mock_path, new_callable=StringIO): handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual('HI\nMOM\n', util.load_file(outfile))
def test_handle_prefers_new_style_config(self, m_configure_ua): """ubuntu_advantage should be preferred over ubuntu-advantage""" cfg = { 'ubuntu-advantage': { 'token': 'nope', 'enable': ['wrong'] }, 'ubuntu_advantage': { 'token': 'token', 'enable': ['esm'] }, } handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'WARNING: Deprecated configuration key "ubuntu-advantage"' ' provided. Expected underscore delimited "ubuntu_advantage";' ' will attempt to continue.', self.logs.getvalue().splitlines()[0]) m_configure_ua.assert_called_once_with(token='token', enable=['esm'])
def test_handle_prefers_new_style_config(self, m_configure_ua): """ubuntu_advantage should be preferred over ubuntu-advantage""" cfg = { "ubuntu-advantage": { "token": "nope", "enable": ["wrong"] }, "ubuntu_advantage": { "token": "token", "enable": ["esm"] }, } handle("nomatter", cfg=cfg, cloud=None, log=self.logger, args=None) self.assertEqual( 'WARNING: Deprecated configuration key "ubuntu-advantage"' ' provided. Expected underscore delimited "ubuntu_advantage";' " will attempt to continue.", self.logs.getvalue().splitlines()[0], ) m_configure_ua.assert_called_once_with(token="token", enable=["esm"])
def test_handle_passes_credentials_and_services_to_configure_ua( self, m_install, m_configure_ua): """All ubuntu_advantage config keys are passed to configure_ua.""" cfg = {"ubuntu_advantage": {"token": "token", "enable": ["esm"]}} handle("nomatter", cfg=cfg, cloud=None, log=self.logger, args=None) m_configure_ua.assert_called_once_with(token="token", enable=["esm"])
def test_handle_passes_credentials_and_services_to_configure_ua( self, m_install, m_configure_ua): """All ubuntu_advantage config keys are passed to configure_ua.""" cfg = {'ubuntu_advantage': {'token': 'token', 'enable': ['esm']}} handle('nomatter', cfg=cfg, cloud=None, log=self.logger, args=None) m_configure_ua.assert_called_once_with(token='token', enable=['esm'])