2009-04-21 13:14:11 +04:00
# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
2011-09-13 03:10:37 +04:00
#
2009-04-21 13:14:11 +04:00
# 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 3 of the License, or
# (at your option) any later version.
2011-09-13 03:10:37 +04:00
#
2009-04-21 13:14:11 +04:00
# 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.
2011-09-13 03:10:37 +04:00
#
2009-04-21 13:14:11 +04:00
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
2010-12-05 19:00:45 +03:00
""" Tests for samba.dcerpc.misc. """
2009-04-21 13:14:11 +04:00
from samba . dcerpc import misc
2010-06-19 20:58:18 +04:00
import samba . tests
2020-09-11 23:29:46 +03:00
from samba . common import cmp
2009-04-21 13:14:11 +04:00
text1 = " 76f53846-a7c2-476a-ae2c-20e2b80d7b34 "
text2 = " 344edffa-330a-4b39-b96e-2c34da52e8b1 "
2018-03-21 02:13:56 +03:00
text3 = " 00112233-4455-6677-8899-aabbccddeeff "
2009-04-21 13:14:11 +04:00
2017-03-10 05:48:38 +03:00
2010-06-19 20:58:18 +04:00
class GUIDTests ( samba . tests . TestCase ) :
2009-04-21 14:06:04 +04:00
2009-04-21 13:14:11 +04:00
def test_str ( self ) :
guid = misc . GUID ( text1 )
2020-02-07 01:02:38 +03:00
self . assertEqual ( text1 , str ( guid ) )
2009-04-21 13:14:11 +04:00
def test_repr ( self ) :
guid = misc . GUID ( text1 )
2020-02-07 01:02:38 +03:00
self . assertEqual ( " GUID( ' %s ' ) " % text1 , repr ( guid ) )
2009-04-21 13:14:11 +04:00
def test_compare_different ( self ) :
guid1 = misc . GUID ( text1 )
guid2 = misc . GUID ( text2 )
2017-01-18 13:38:55 +03:00
self . assertFalse ( guid1 == guid2 )
2017-03-10 05:48:38 +03:00
self . assertGreater ( guid1 , guid2 )
self . assertTrue ( cmp ( guid1 , guid2 ) > 0 )
2009-04-21 13:14:11 +04:00
def test_compare_same ( self ) :
guid1 = misc . GUID ( text1 )
guid2 = misc . GUID ( text1 )
2017-01-18 13:38:55 +03:00
self . assertTrue ( guid1 == guid2 )
2020-02-07 01:02:38 +03:00
self . assertEqual ( guid1 , guid2 )
self . assertEqual ( 0 , cmp ( guid1 , guid2 ) )
2010-09-22 09:54:10 +04:00
2018-03-21 02:13:56 +03:00
def test_valid_formats ( self ) :
fmts = [
" 00112233-4455-6677-8899-aabbccddeeff " , # 36
b " 00112233-4455-6677-8899-aabbccddeeff " , # 36 as bytes
" { 00112233-4455-6677-8899-aabbccddeeff} " , # 38
" 33221100554477668899aabbccddeeff " , # 32
b " 33221100554477668899aabbccddeeff " , # 32 as bytes
# 16 as hex bytes
b " \x33 \x22 \x11 \x00 \x55 \x44 \x77 \x66 \x88 \x99 \xaa \xbb \xcc \xdd \xee \xff "
]
for fmt in fmts :
guid = misc . GUID ( fmt )
2020-02-07 01:02:38 +03:00
self . assertEqual ( text3 , str ( guid ) )
2018-03-21 02:13:56 +03:00
def test_invalid_formats ( self ) :
fmts = [
" 00112233-4455-6677-8899-aabbccddee " , # 34
" {33221100554477668899aabbccddeeff} " ,
" 33221100554477668899aabbccddee " , # 30
" \\ x33 \\ x22 \\ x11 \\ x00 \\ x55 \\ x44 \\ x77 \\ x66 \\ x88 \\ x99 \\ xaa \\ xbb \\ xcc \\ xdd \\ xee \\ xff " ,
r " \ x33 \ x22 \ x11 \ x00 \ x55 \ x44 \ x77 \ x66 \ x88 \ x99 \ xaa \ xbb \ xcc \ xdd \ xee \ xff " ,
]
for fmt in fmts :
try :
misc . GUID ( fmt )
except samba . NTSTATUSError :
# invalid formats should get this error
continue
else :
# otherwise, test fail
self . fail ( )
2018-02-28 17:40:26 +03:00
2010-09-22 09:54:10 +04:00
2010-06-19 20:58:18 +04:00
class PolicyHandleTests ( samba . tests . TestCase ) :
2009-04-21 13:53:00 +04:00
def test_init ( self ) :
x = misc . policy_handle ( text1 , 1 )
2020-02-07 01:02:38 +03:00
self . assertEqual ( 1 , x . handle_type )
self . assertEqual ( text1 , str ( x . uuid ) )
2009-04-21 13:53:00 +04:00
def test_repr ( self ) :
x = misc . policy_handle ( text1 , 42 )
2020-02-07 01:02:38 +03:00
self . assertEqual ( " policy_handle( %d , ' %s ' ) " % ( 42 , text1 ) , repr ( x ) )
2009-04-21 14:06:04 +04:00
def test_str ( self ) :
x = misc . policy_handle ( text1 , 42 )
2020-02-07 01:02:38 +03:00
self . assertEqual ( " %d , %s " % ( 42 , text1 ) , str ( x ) )