def test_from_cli_string_valid(self): """Positive tests for SerialConnection.from_cli_string().""" c = SerialConnection.from_cli_string('/dev/ttyS0') self.assertEqual('device', c.kind) self.assertEqual('/dev/ttyS0', c.value) self.assertEqual({}, c.options) c = SerialConnection.from_cli_string( 'file:/tmp/foo.txt,datastore=datastore1') self.assertEqual('file', c.kind) self.assertEqual('/tmp/foo.txt', c.value) self.assertEqual({'datastore': 'datastore1'}, c.options) c = SerialConnection.from_cli_string('tcp::22,server') self.assertEqual('tcp', c.kind) self.assertEqual(':22', c.value) self.assertEqual({'server': True}, c.options) c = SerialConnection.from_cli_string('telnet://1.1.1.1:1111') self.assertEqual('telnet', c.kind) self.assertEqual('1.1.1.1:1111', c.value) self.assertEqual({}, c.options)
def test_from_cli_string_invalid(self): """Negative tests for SerialConnection.from_cli_string() method.""" # Parsing failure self.assertRaises(InvalidInputError, SerialConnection.from_cli_string, ',bar') # Parsing succeeds but invalid kind self.assertRaises(ValueUnsupportedError, SerialConnection.from_cli_string, 'foo:bar') # Parsing succeeds but invalid value self.assertRaises(InvalidInputError, SerialConnection.from_cli_string, 'tcp:bar') # Parsing succeeds but incorrect options self.assertRaises(InvalidInputError, SerialConnection.from_cli_string, 'file:/tmp/foo.txt') self.assertEqual(None, SerialConnection.from_cli_string(" "))