2015-04-04 21:27:13 +03:00
# Copyright (C) 2015 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301 USA.
import unittest
2015-09-06 17:36:17 +03:00
from virtinst import URI
2015-04-04 21:27:13 +03:00
class TestURI ( unittest . TestCase ) :
"""
2015-09-06 17:36:17 +03:00
Test virtinst URI module
2015-04-04 21:27:13 +03:00
"""
def _compare ( self , uri , scheme = ' ' ,
transport = ' ' , port = ' ' , username = ' ' , path = ' ' ,
hostname = ' ' , query = ' ' , fragment = ' ' ,
is_ipv6 = False , host_is_ipv4_string = False ) :
2015-09-06 17:36:17 +03:00
uriinfo = URI ( uri )
2017-05-05 18:39:59 +03:00
self . assertEqual ( scheme , uriinfo . scheme )
self . assertEqual ( transport , uriinfo . transport )
self . assertEqual ( port , uriinfo . port )
self . assertEqual ( username , uriinfo . username )
self . assertEqual ( path , uriinfo . path )
self . assertEqual ( hostname , uriinfo . hostname )
self . assertEqual ( query , uriinfo . query )
self . assertEqual ( fragment , uriinfo . fragment )
self . assertEqual ( is_ipv6 , uriinfo . is_ipv6 )
self . assertEqual ( host_is_ipv4_string , uriinfo . host_is_ipv4_string )
2015-04-04 21:27:13 +03:00
def testURIs ( self ) :
self . _compare ( " lxc:// " , scheme = " lxc " )
self . _compare ( " qemu:///session " , scheme = " qemu " , path = " /session " )
self . _compare ( " http://foobar.com:5901/my/example.path#my-frag " ,
scheme = " http " , hostname = " foobar.com " ,
port = " 5901 " , path = ' /my/example.path ' ,
fragment = " my-frag " )
self . _compare (
" gluster+tcp://[1:2:3:4:5:6:7:8]:24007/testvol/dir/a.img " ,
scheme = " gluster " , transport = " tcp " ,
hostname = " 1:2:3:4:5:6:7:8 " , port = " 24007 " ,
path = " /testvol/dir/a.img " , is_ipv6 = True )
self . _compare (
" qemu+ssh://root@192.168.2.3/system?no_verify=1 " ,
scheme = " qemu " , transport = " ssh " , username = " root " ,
hostname = " 192.168.2.3 " , path = " /system " ,
query = " no_verify=1 " , host_is_ipv4_string = True )
2017-06-01 21:14:49 +03:00
self . _compare (
" qemu+ssh://foo % 5Cbar@hostname/system " ,
scheme = " qemu " , path = " /system " , transport = " ssh " ,
hostname = " hostname " , username = " foo \\ bar " )