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")
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")
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")
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']))
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()
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')
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')