Пример #1
0
 def test_predict_brain_missing_version(self):
     """This test verifies that an error occurs when the predict brain
     flag is passed without the predict version flag.
     """
     argv = ["--predict-brain", "cartpole"]
     argv.extend(self._default_args())
     # Argument parsing errors end up on stderr, which makes unit test
     # output messy, so hide it here.
     with hide_stderr():
         with self.assertRaises(SystemExit):
             parse_base_arguments(argv)
Пример #2
0
 def test_parse_base_arguments_from_cli(self):
     """ Verify sys.argv values get parsed correctly """
     argv = ['program', '--train-brain', 'life']
     argv.extend(self._default_args())
     with patch('sys.argv', argv):
         base_arguments = parse_base_arguments()
         self.assertIn('life/sims/ws', base_arguments.brain_url)
         self.assertNotIn('life/predictions/ws', base_arguments.brain_url)
Пример #3
0
 def test_env_exclusive(self):
     """ Command arguments and env variables are mutually exclusive """
     argv = ['--predict-brain', 'life_of_brian']
     argv.extend(self._default_args())
     with patch.dict('os.environ', {'BONSAI_BRAIN_URL': 'ws://test/v1/'}):
         with hide_stderr():
             with self.assertRaises(SystemExit):
                 base_args = parse_base_arguments(argv)
Пример #4
0
    def test_env_override(self):
        """Command line arguments override environment variables """
        argv = ['--brain-url', 'ws://cmdline/v1/brain']
        argv.extend(self._default_args())
        with patch.dict('os.environ', {'BONSAI_BRAIN_URL': 'ws://test/v1/'}):
            base_args = parse_base_arguments(argv)

        self.assertEqual('ws://cmdline/v1/brain', base_args.brain_url)
Пример #5
0
    def test_env_url(self):
        """ A brain-url specified by an environment variable is used """
        argv = []
        argv.extend(self._default_args())
        with patch.dict('os.environ', {'BONSAI_BRAIN_URL': 'ws://test/v1/'}):
            base_args = parse_base_arguments(argv)

        self.assertEqual("ws://test/v1/", base_args.brain_url)
Пример #6
0
    def test_access_key_missing(self, mock_read):
        """If no access key is provided, the command returns an error.
        """
        mock_read.return_value = (None, None, None)

        argv = ["--train-brain", "cartpole"]
        with hide_stderr():
            with self.assertRaises(SystemExit):
                base_args = parse_base_arguments(argv)
Пример #7
0
    def test_access_key(self, mock_read):
        """This test verifies that an access key specified on the command
        line is used over an access key read from bonsai config.
        """
        mock_read.return_value = ("config_key", "ws://root", "test_user")

        argv = ["--train-brain", "cartpole", "--access-key", "cmd_line_key"]
        base_args = parse_base_arguments(argv)

        self.assertEqual("cmd_line_key", base_args.access_key)
Пример #8
0
 def test_brain_url_passed_literally(self):
     """This tests verifies that a url passed using the flag --brain-url
     is returned unmodified.
     """
     brain_url = "ws://some_url_here"
     argv = ["--brain-url", brain_url]
     argv.extend(self._default_args())
     base_args = parse_base_arguments(argv)
     self.assertEqual(brain_url, base_args.brain_url)
     self.assertIsNone(base_args.recording_file)
Пример #9
0
    def test_predict_brain(self, mock_read):
        """This test verifies that brain_url is composed correctly when
        the predict flags are passed.
        """
        mock_read.return_value = ("predictkey", "ws://root", "test_user")

        argv = ["--predict-brain", "cartpole", "--predict-version", "49"]
        base_args = parse_base_arguments(argv)

        self.assertEqual("ws://root/v1/test_user/cartpole/49/predictions/ws",
                         base_args.brain_url)
        self.assertEqual("predictkey", base_args.access_key)
Пример #10
0
    def test_train_brain(self, mock_read):
        """This test verfies that brain_url is composed correctly when
        the --train-brain flag is passed.
        """
        mock_read.return_value = ("trainkey", "ws://root", "test_user")

        argv = ["--train-brain", "cartpole"]
        base_args = parse_base_arguments(argv)

        self.assertEqual("ws://root/v1/test_user/cartpole/sims/ws",
                         base_args.brain_url)
        self.assertEqual("trainkey", base_args.access_key)
Пример #11
0
 def test_parse_base_arguments_manual(self):
     """ Verify user can manually specify arguments """
     base_arguments = parse_base_arguments(
         ['--access-key', 'test_key', '--train-brain', 'life'])
     self.assertIn('life/sims/ws', base_arguments.brain_url)
     self.assertNotIn('life/predictions/ws', base_arguments.brain_url)