| | |
| | | from pyramid.scripts.pshell import PShellCommand |
| | | return PShellCommand |
| | | |
| | | def _makeOne(self, patch_bootstrap=True, patch_config=True, |
| | | def _makeOne(self, patch_bootstrap=True, patch_loader=True, |
| | | patch_args=True, patch_options=True): |
| | | cmd = self._getTargetClass()([]) |
| | | |
| | | if patch_bootstrap: |
| | | self.bootstrap = dummy.DummyBootstrap() |
| | | cmd.bootstrap = (self.bootstrap,) |
| | | if patch_config: |
| | | self.config_factory = dummy.DummyConfigParserFactory() |
| | | cmd.ConfigParser = self.config_factory |
| | | cmd.bootstrap = self.bootstrap |
| | | if patch_loader: |
| | | self.loader = dummy.DummyLoader() |
| | | cmd.get_config_loader = self.loader |
| | | if patch_args: |
| | | class Args(object): pass |
| | | self.args = Args() |
| | |
| | | |
| | | command.default_runner = shell |
| | | command.run() |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':self.bootstrap.app, 'root':self.bootstrap.root, |
| | |
| | | self.assertEqual( |
| | | out_calls, ['could not find a shell named "unknown_python_shell"'] |
| | | ) |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertTrue(self.bootstrap.closer.called) |
| | | |
| | |
| | | command.args.python_shell = 'ipython' |
| | | |
| | | command.run() |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':self.bootstrap.app, 'root':self.bootstrap.root, |
| | |
| | | command = self._makeOne() |
| | | model = dummy.Dummy() |
| | | user = dummy.Dummy() |
| | | self.config_factory.items = [('m', model), ('User', user)] |
| | | self.loader.settings = {'pshell': {'m': model, 'User': user}} |
| | | shell = dummy.DummyShell() |
| | | command.run(shell) |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':self.bootstrap.app, 'root':self.bootstrap.root, |
| | |
| | | env['a'] = 1 |
| | | env['root'] = 'root override' |
| | | env['none'] = None |
| | | self.config_factory.items = [('setup', setup)] |
| | | self.loader.settings = {'pshell': {'setup': setup}} |
| | | shell = dummy.DummyShell() |
| | | command.run(shell) |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':self.bootstrap.app, 'root':'root override', |
| | |
| | | 'python': dshell, |
| | | } |
| | | ) |
| | | self.config_factory.items = [ |
| | | ('default_shell', 'bpython python\nipython')] |
| | | self.loader.settings = {'pshell': { |
| | | 'default_shell': 'bpython python\nipython'}} |
| | | command.run() |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertTrue(dshell.called) |
| | | |
| | |
| | | env['a'] = 1 |
| | | env['m'] = 'model override' |
| | | env['root'] = 'root override' |
| | | self.config_factory.items = [('setup', setup), ('m', model)] |
| | | self.loader.settings = {'pshell': {'setup': setup, 'm': model}} |
| | | shell = dummy.DummyShell() |
| | | command.run(shell) |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':self.bootstrap.app, 'root':'root override', |
| | |
| | | env['a'] = 1 |
| | | env['root'] = 'root override' |
| | | model = dummy.Dummy() |
| | | self.config_factory.items = [('setup', 'abc'), |
| | | ('m', model)] |
| | | self.loader.settings = {'pshell': {'setup': 'abc', 'm': model}} |
| | | command.args.setup = setup |
| | | shell = dummy.DummyShell() |
| | | command.run(shell) |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':self.bootstrap.app, 'root':'root override', |
| | |
| | | def test_command_custom_section_override(self): |
| | | command = self._makeOne() |
| | | dummy_ = dummy.Dummy() |
| | | self.config_factory.items = [('app', dummy_), ('root', dummy_), |
| | | ('registry', dummy_), ('request', dummy_)] |
| | | self.loader.settings = {'pshell': { |
| | | 'app': dummy_, 'root': dummy_, 'registry': dummy_, |
| | | 'request': dummy_}} |
| | | shell = dummy.DummyShell() |
| | | command.run(shell) |
| | | self.assertTrue(self.config_factory.parser) |
| | | self.assertEqual(self.config_factory.parser.filename, |
| | | '/foo/bar/myapp.ini') |
| | | self.assertEqual(self.bootstrap.a[0], '/foo/bar/myapp.ini#myapp') |
| | | self.assertEqual(shell.env, { |
| | | 'app':dummy_, 'root':dummy_, 'registry':dummy_, 'request':dummy_, |