2015-04-04 21:27:13 +03:00
# Copyright (C) 2015 Red Hat, Inc.
#
2018-04-04 16:35:41 +03:00
# This work is licensed under the GNU GPLv2 or later.
2018-03-20 22:00:02 +03:00
# See the COPYING file in the top-level directory.
2015-04-04 21:27:13 +03:00
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 " )
2018-04-18 09:31:26 +03:00
self . _compare (
" qemu+ssh://user %40d omain.org@hostname/system " ,
scheme = " qemu " , path = " /system " , transport = " ssh " ,
hostname = " hostname " , username = " user@domain.org " )