Exemplo n.º 1
0
 def test_variables_set(self):
     """Test variable_set command"""
     variable_command.variables_set(
         self.parser.parse_args(['variables', 'set', 'foo', 'bar']))
     assert Variable.get("foo") is not None
     with pytest.raises(KeyError):
         Variable.get("foo1")
Exemplo n.º 2
0
 def test_variables_delete(self):
     """Test variable_delete command"""
     variable_command.variables_set(
         self.parser.parse_args(['variables', 'set', 'foo', 'bar']))
     variable_command.variables_delete(
         self.parser.parse_args(['variables', 'delete', 'foo']))
     self.assertRaises(KeyError, Variable.get, "foo")
Exemplo n.º 3
0
 def test_variables_delete(self):
     """Test variable_delete command"""
     variable_command.variables_set(
         self.parser.parse_args(['variables', 'set', 'foo', 'bar']))
     variable_command.variables_delete(
         self.parser.parse_args(['variables', 'delete', 'foo']))
     with pytest.raises(KeyError):
         Variable.get("foo")
Exemplo n.º 4
0
    def test_variables_isolation(self):
        """Test isolation of variables"""
        tmp1 = tempfile.NamedTemporaryFile(delete=True)
        tmp2 = tempfile.NamedTemporaryFile(delete=True)

        # First export
        variable_command.variables_set(self.parser.parse_args(['variables', 'set', 'foo', '{"foo":"bar"}']))
        variable_command.variables_set(self.parser.parse_args(['variables', 'set', 'bar', 'original']))
        variable_command.variables_export(self.parser.parse_args(['variables', 'export', tmp1.name]))

        first_exp = open(tmp1.name)

        variable_command.variables_set(self.parser.parse_args(['variables', 'set', 'bar', 'updated']))
        variable_command.variables_set(self.parser.parse_args(['variables', 'set', 'foo', '{"foo":"oops"}']))
        variable_command.variables_delete(self.parser.parse_args(['variables', 'delete', 'foo']))
        variable_command.variables_import(self.parser.parse_args(['variables', 'import', tmp1.name]))

        self.assertEqual('original', Variable.get('bar'))
        self.assertEqual('{\n  "foo": "bar"\n}', Variable.get('foo'))

        # Second export
        variable_command.variables_export(self.parser.parse_args(['variables', 'export', tmp2.name]))

        second_exp = open(tmp2.name)
        self.assertEqual(first_exp.read(), second_exp.read())

        # Clean up files
        second_exp.close()
        first_exp.close()
    def test_variables_get(self, mock_stdout):
        """"Test variable_get command"""
        # Test conventional get call
        variable_command.variables_set(
            self.parser.parse_args(
                ['variables', 'set', 'foo', '{"foo":"bar"}']))
        variable_command.variables_get(
            self.parser.parse_args(['variables', 'get', 'foo']))
        variable_command.variables_get(
            self.parser.parse_args(
                ['variables', 'get', 'baz', '--default', 'bar']))
        self.assertEqual(mock_stdout.getvalue(), 'bar\n')

        # Test get call with no variable
        with self.assertRaises(SystemExit):
            variable_command.variables_get(
                self.parser.parse_args(['variables', 'get',
                                        'no-existing-VAR']))
Exemplo n.º 6
0
    def test_variables_isolation(self):
        """Test isolation of variables"""
        with tempfile.NamedTemporaryFile(
                delete=True) as tmp1, tempfile.NamedTemporaryFile(
                    delete=True) as tmp2:

            # First export
            variable_command.variables_set(
                self.parser.parse_args(
                    ['variables', 'set', 'foo', '{"foo":"bar"}']))
            variable_command.variables_set(
                self.parser.parse_args(['variables', 'set', 'bar',
                                        'original']))
            variable_command.variables_export(
                self.parser.parse_args(['variables', 'export', tmp1.name]))

            with open(tmp1.name) as first_exp:

                variable_command.variables_set(
                    self.parser.parse_args(
                        ['variables', 'set', 'bar', 'updated']))
                variable_command.variables_set(
                    self.parser.parse_args(
                        ['variables', 'set', 'foo', '{"foo":"oops"}']))
                variable_command.variables_delete(
                    self.parser.parse_args(['variables', 'delete', 'foo']))
                variable_command.variables_import(
                    self.parser.parse_args(['variables', 'import', tmp1.name]))

                assert 'original' == Variable.get('bar')
                assert '{\n  "foo": "bar"\n}' == Variable.get('foo')

                # Second export
                variable_command.variables_export(
                    self.parser.parse_args(['variables', 'export', tmp2.name]))

                with open(tmp2.name) as second_exp:
                    assert first_exp.read() == second_exp.read()
Exemplo n.º 7
0
    def test_variables_set_different_types(self):
        """Test storage of various data types"""
        # Set a dict
        variable_command.variables_set(
            self.parser.parse_args(
                ['variables', 'set', 'dict', '{"foo": "oops"}']))
        # Set a list
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'list', '["oops"]']))
        # Set str
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'str',
                                    'hello string']))
        # Set int
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'int', '42']))
        # Set float
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'float', '42.0']))
        # Set true
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'true', 'true']))
        # Set false
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'false', 'false']))
        # Set none
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'null', 'null']))

        # Export and then import
        variable_command.variables_export(
            self.parser.parse_args(
                ['variables', 'export', 'variables_types.json']))
        variable_command.variables_import(
            self.parser.parse_args(
                ['variables', 'import', 'variables_types.json']))

        # Assert value
        self.assertEqual({'foo': 'oops'},
                         Variable.get('dict', deserialize_json=True))
        self.assertEqual(['oops'], Variable.get('list', deserialize_json=True))
        self.assertEqual('hello string',
                         Variable.get('str'))  # cannot json.loads(str)
        self.assertEqual(42, Variable.get('int', deserialize_json=True))
        self.assertEqual(42.0, Variable.get('float', deserialize_json=True))
        self.assertEqual(True, Variable.get('true', deserialize_json=True))
        self.assertEqual(False, Variable.get('false', deserialize_json=True))
        self.assertEqual(None, Variable.get('null', deserialize_json=True))

        os.remove('variables_types.json')
Exemplo n.º 8
0
 def test_variables_set(self):
     """Test variable_set command"""
     variable_command.variables_set(
         self.parser.parse_args(['variables', 'set', 'foo', 'bar']))
     self.assertIsNotNone(Variable.get("foo"))
     self.assertRaises(KeyError, Variable.get, "foo1")
    def test_variables(self):
        # Checks if all subcommands are properly received
        variable_command.variables_set(
            self.parser.parse_args(
                ['variables', 'set', 'foo', '{"foo":"bar"}']))
        variable_command.variables_get(
            self.parser.parse_args(['variables', 'get', 'foo']))
        variable_command.variables_get(
            self.parser.parse_args(['variables', 'get', 'baz', '-d', 'bar']))
        variable_command.variables_list(
            self.parser.parse_args(['variables', 'list']))
        variable_command.variables_delete(
            self.parser.parse_args(['variables', 'delete', 'bar']))
        variable_command.variables_import(
            self.parser.parse_args(['variables', 'import', os.devnull]))
        variable_command.variables_export(
            self.parser.parse_args(['variables', 'export', os.devnull]))

        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'bar', 'original']))
        # First export
        variable_command.variables_export(
            self.parser.parse_args(['variables', 'export', 'variables1.json']))

        first_exp = open('variables1.json', 'r')

        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'bar', 'updated']))
        variable_command.variables_set(
            self.parser.parse_args(
                ['variables', 'set', 'foo', '{"foo":"oops"}']))
        variable_command.variables_delete(
            self.parser.parse_args(['variables', 'delete', 'foo']))
        # First import
        variable_command.variables_import(
            self.parser.parse_args(['variables', 'import', 'variables1.json']))

        self.assertEqual('original', Variable.get('bar'))
        self.assertEqual('{\n  "foo": "bar"\n}', Variable.get('foo'))
        # Second export
        variable_command.variables_export(
            self.parser.parse_args(['variables', 'export', 'variables2.json']))

        second_exp = open('variables2.json', 'r')
        self.assertEqual(first_exp.read(), second_exp.read())
        second_exp.close()
        first_exp.close()
        # Second import
        variable_command.variables_import(
            self.parser.parse_args(['variables', 'import', 'variables2.json']))

        self.assertEqual('original', Variable.get('bar'))
        self.assertEqual('{\n  "foo": "bar"\n}', Variable.get('foo'))

        # Set a dict
        variable_command.variables_set(
            self.parser.parse_args(
                ['variables', 'set', 'dict', '{"foo": "oops"}']))
        # Set a list
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'list', '["oops"]']))
        # Set str
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'str',
                                    'hello string']))
        # Set int
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'int', '42']))
        # Set float
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'float', '42.0']))
        # Set true
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'true', 'true']))
        # Set false
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'false', 'false']))
        # Set none
        variable_command.variables_set(
            self.parser.parse_args(['variables', 'set', 'null', 'null']))

        # Export and then import
        variable_command.variables_export(
            self.parser.parse_args(['variables', 'export', 'variables3.json']))
        variable_command.variables_import(
            self.parser.parse_args(['variables', 'import', 'variables3.json']))

        # Assert value
        self.assertEqual({'foo': 'oops'},
                         Variable.get('dict', deserialize_json=True))
        self.assertEqual(['oops'], Variable.get('list', deserialize_json=True))
        self.assertEqual('hello string',
                         Variable.get('str'))  # cannot json.loads(str)
        self.assertEqual(42, Variable.get('int', deserialize_json=True))
        self.assertEqual(42.0, Variable.get('float', deserialize_json=True))
        self.assertEqual(True, Variable.get('true', deserialize_json=True))
        self.assertEqual(False, Variable.get('false', deserialize_json=True))
        self.assertEqual(None, Variable.get('null', deserialize_json=True))

        os.remove('variables1.json')
        os.remove('variables2.json')
        os.remove('variables3.json')