Ignore:
Timestamp:
Nov 24, 2016, 1:14:11 PM (9 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to version 4.4.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/lib/tdb/python/tests/simple.py

    r986 r988  
    77# Published under the GNU LGPLv3 or later
    88
     9import sys
     10import os
     11import tempfile
     12from unittest import TestCase
     13
    914import tdb
    10 from unittest import TestCase
    11 import os, tempfile
    1215
    1316
    1417class OpenTdbTests(TestCase):
    1518
    16     def test_nonexistant_read(self):
    17         self.assertRaises(IOError, tdb.Tdb, "/some/nonexistant/file", 0,
     19    def test_nonexistent_read(self):
     20        self.assertRaises(IOError, tdb.Tdb, "/some/nonexistent/file", 0,
    1821                tdb.DEFAULT, os.O_RDWR)
    1922
     
    2225    def test_double_close(self):
    2326        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT,
    24                 os.O_CREAT|os.O_RDWR)
     27                           os.O_CREAT|os.O_RDWR)
    2528        self.assertNotEqual(None, self.tdb)
    2629
     
    2932        self.tdb.close()
    3033
     34        # Check that further operations do not crash python
     35        self.assertRaises(RuntimeError, lambda: self.tdb.transaction_start())
     36
     37        self.assertRaises(RuntimeError, lambda: self.tdb["bar"])
     38
    3139
    3240class InternalTdbTests(TestCase):
     
    3745        # repr used to crash on internal db
    3846        self.assertEquals(repr(self.tdb), "Tdb(<internal>)")
     47
     48
     49class CommonTdbTests(TestCase):
     50    """Tests common to both the text & bytes interfaces"""
     51
     52    use_text = False
     53
     54    def setUp(self):
     55        super(CommonTdbTests, self).setUp()
     56        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT,
     57                           os.O_CREAT|os.O_RDWR)
     58        self.assertNotEqual(None, self.tdb)
     59        if self.use_text:
     60            self.tdb = self.tdb.text
     61
     62    def test_lockall(self):
     63        self.tdb.lock_all()
     64
     65    def test_max_dead(self):
     66        self.tdb.max_dead = 20
     67
     68    def test_unlockall(self):
     69        self.tdb.lock_all()
     70        self.tdb.unlock_all()
     71
     72    def test_lockall_read(self):
     73        self.tdb.read_lock_all()
     74        self.tdb.read_unlock_all()
     75
     76    def test_reopen(self):
     77        self.tdb.reopen()
     78
     79    def test_hash_size(self):
     80        self.tdb.hash_size
     81
     82    def test_map_size(self):
     83        self.tdb.map_size
     84
     85    def test_freelist_size(self):
     86        self.tdb.freelist_size
     87
     88    def test_name(self):
     89        self.tdb.filename
     90
     91    def test_add_flags(self):
     92        self.tdb.add_flags(tdb.NOMMAP)
     93        self.tdb.remove_flags(tdb.NOMMAP)
     94
     95
     96class TextCommonTdbTests(CommonTdbTests):
     97
     98    use_text = True
    3999
    40100
     
    44104        super(SimpleTdbTests, self).setUp()
    45105        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT,
    46                 os.O_CREAT|os.O_RDWR)
     106                           os.O_CREAT|os.O_RDWR)
    47107        self.assertNotEqual(None, self.tdb)
    48 
    49     def tearDown(self):
    50         del self.tdb
    51108
    52109    def test_repr(self):
    53110        self.assertTrue(repr(self.tdb).startswith("Tdb('"))
    54111
    55     def test_lockall(self):
    56         self.tdb.lock_all()
    57 
    58     def test_max_dead(self):
    59         self.tdb.max_dead = 20
    60 
    61     def test_unlockall(self):
    62         self.tdb.lock_all()
    63         self.tdb.unlock_all()
    64 
    65     def test_lockall_read(self):
    66         self.tdb.read_lock_all()
    67         self.tdb.read_unlock_all()
    68 
    69     def test_reopen(self):
     112    def test_store(self):
     113        self.tdb.store(b"bar", b"bla")
     114        self.assertEquals(b"bla", self.tdb.get(b"bar"))
     115
     116    def test_getitem(self):
     117        self.tdb[b"bar"] = b"foo"
    70118        self.tdb.reopen()
    71 
    72     def test_store(self):
    73         self.tdb.store("bar", "bla")
    74         self.assertEquals("bla", self.tdb.get("bar"))
    75 
    76     def test_getitem(self):
    77         self.tdb["bar"] = "foo"
    78         self.tdb.reopen()
    79         self.assertEquals("foo", self.tdb["bar"])
     119        self.assertEquals(b"foo", self.tdb[b"bar"])
    80120
    81121    def test_delete(self):
    82         self.tdb["bar"] = "foo"
    83         del self.tdb["bar"]
    84         self.assertRaises(KeyError, lambda: self.tdb["bar"])
    85    
     122        self.tdb[b"bar"] = b"foo"
     123        del self.tdb[b"bar"]
     124        self.assertRaises(KeyError, lambda: self.tdb[b"bar"])
     125
    86126    def test_contains(self):
    87         self.tdb["bla"] = "bloe"
    88         self.assertTrue("bla" in self.tdb)
     127        self.tdb[b"bla"] = b"bloe"
     128        self.assertTrue(b"bla" in self.tdb)
     129        self.assertFalse(b"qwertyuiop" in self.tdb)
     130        if sys.version_info < (3, 0):
     131            self.assertTrue(self.tdb.has_key(b"bla"))
     132            self.assertFalse(self.tdb.has_key(b"qwertyuiop"))
    89133
    90134    def test_keyerror(self):
    91         self.assertRaises(KeyError, lambda: self.tdb["bla"])
    92 
    93     def test_hash_size(self):
    94         self.tdb.hash_size
    95 
    96     def test_map_size(self):
    97         self.tdb.map_size
    98 
    99     def test_freelist_size(self):
    100         self.tdb.freelist_size
    101 
    102     def test_name(self):
    103         self.tdb.filename
     135        self.assertRaises(KeyError, lambda: self.tdb[b"bla"])
    104136
    105137    def test_iterator(self):
    106         self.tdb["bla"] = "1"
    107         self.tdb["brainslug"] = "2"
    108         self.assertEquals(["bla", "brainslug"], list(self.tdb))
     138        self.tdb[b"bla"] = b"1"
     139        self.tdb[b"brainslug"] = b"2"
     140        l = list(self.tdb)
     141        l.sort()
     142        self.assertEquals([b"bla", b"brainslug"], l)
    109143
    110144    def test_transaction_cancel(self):
    111         self.tdb["bloe"] = "2"
    112         self.tdb.transaction_start()
    113         self.tdb["bloe"] = "1"
     145        self.tdb[b"bloe"] = b"2"
     146        self.tdb.transaction_start()
     147        self.tdb[b"bloe"] = b"1"
    114148        self.tdb.transaction_cancel()
    115         self.assertEquals("2", self.tdb["bloe"])
     149        self.assertEquals(b"2", self.tdb[b"bloe"])
    116150
    117151    def test_transaction_commit(self):
    118         self.tdb["bloe"] = "2"
    119         self.tdb.transaction_start()
    120         self.tdb["bloe"] = "1"
     152        self.tdb[b"bloe"] = b"2"
     153        self.tdb.transaction_start()
     154        self.tdb[b"bloe"] = b"1"
    121155        self.tdb.transaction_commit()
    122         self.assertEquals("1", self.tdb["bloe"])
     156        self.assertEquals(b"1", self.tdb[b"bloe"])
    123157
    124158    def test_transaction_prepare_commit(self):
    125         self.tdb["bloe"] = "2"
    126         self.tdb.transaction_start()
    127         self.tdb["bloe"] = "1"
     159        self.tdb[b"bloe"] = b"2"
     160        self.tdb.transaction_start()
     161        self.tdb[b"bloe"] = b"1"
    128162        self.tdb.transaction_prepare_commit()
    129163        self.tdb.transaction_commit()
    130         self.assertEquals("1", self.tdb["bloe"])
     164        self.assertEquals(b"1", self.tdb[b"bloe"])
    131165
    132166    def test_iterkeys(self):
    133         self.tdb["bloe"] = "2"
    134         self.tdb["bla"] = "25"
    135         i = self.tdb.iterkeys()
    136         self.assertEquals(set(["bloe", "bla"]), set([i.next(), i.next()]))
     167        self.tdb[b"bloe"] = b"2"
     168        self.tdb[b"bla"] = b"25"
     169        if sys.version_info >= (3, 0):
     170            i = self.tdb.keys()
     171        else:
     172            i = self.tdb.iterkeys()
     173        self.assertEquals(set([b"bloe", b"bla"]), set([next(i), next(i)]))
    137174
    138175    def test_clear(self):
    139         self.tdb["bloe"] = "2"
    140         self.tdb["bla"] = "25"
     176        self.tdb[b"bloe"] = b"2"
     177        self.tdb[b"bla"] = b"25"
    141178        self.assertEquals(2, len(list(self.tdb)))
    142179        self.tdb.clear()
     
    144181
    145182    def test_repack(self):
    146         self.tdb["foo"] = "abc"
    147         self.tdb["bar"] = "def"
    148         del self.tdb["foo"]
     183        self.tdb[b"foo"] = b"abc"
     184        self.tdb[b"bar"] = b"def"
     185        del self.tdb[b"foo"]
    149186        self.tdb.repack()
    150187
     
    158195    def test_len(self):
    159196        self.assertEquals(0, len(list(self.tdb)))
    160         self.tdb["entry"] = "value"
     197        self.tdb[b"entry"] = b"value"
    161198        self.assertEquals(1, len(list(self.tdb)))
    162199
    163     def test_add_flags(self):
    164         self.tdb.add_flags(tdb.NOMMAP)
    165         self.tdb.remove_flags(tdb.NOMMAP)
     200
     201class TdbTextTests(TestCase):
     202
     203    def setUp(self):
     204        super(TdbTextTests, self).setUp()
     205        self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT,
     206                           os.O_CREAT|os.O_RDWR)
     207        self.assertNotEqual(None, self.tdb)
     208
     209    def test_repr(self):
     210        self.assertTrue(repr(self.tdb).startswith("Tdb('"))
     211
     212    def test_store(self):
     213        self.tdb.text.store("bar", "bla")
     214        self.assertEquals("bla", self.tdb.text.get("bar"))
     215
     216    def test_getitem(self):
     217        self.tdb.text["bar"] = "foo"
     218        self.tdb.reopen()
     219        self.assertEquals("foo", self.tdb.text["bar"])
     220
     221    def test_delete(self):
     222        self.tdb.text["bar"] = "foo"
     223        del self.tdb.text["bar"]
     224        self.assertRaises(KeyError, lambda: self.tdb.text["bar"])
     225
     226    def test_contains(self):
     227        self.tdb.text["bla"] = "bloe"
     228        self.assertTrue("bla" in self.tdb.text)
     229        self.assertFalse("qwertyuiop" in self.tdb.text)
     230        if sys.version_info < (3, 0):
     231            self.assertTrue(self.tdb.text.has_key("bla"))
     232            self.assertFalse(self.tdb.text.has_key("qwertyuiop"))
     233
     234    def test_keyerror(self):
     235        self.assertRaises(KeyError, lambda: self.tdb.text["bla"])
     236
     237    def test_iterator(self):
     238        self.tdb.text["bla"] = "1"
     239        self.tdb.text["brainslug"] = "2"
     240        l = list(self.tdb.text)
     241        l.sort()
     242        self.assertEquals(["bla", "brainslug"], l)
     243
     244    def test_transaction_cancel(self):
     245        self.tdb.text["bloe"] = "2"
     246        self.tdb.transaction_start()
     247        self.tdb.text["bloe"] = "1"
     248        self.tdb.transaction_cancel()
     249        self.assertEquals("2", self.tdb.text["bloe"])
     250
     251    def test_transaction_commit(self):
     252        self.tdb.text["bloe"] = "2"
     253        self.tdb.transaction_start()
     254        self.tdb.text["bloe"] = "1"
     255        self.tdb.transaction_commit()
     256        self.assertEquals("1", self.tdb.text["bloe"])
     257
     258    def test_transaction_prepare_commit(self):
     259        self.tdb.text["bloe"] = "2"
     260        self.tdb.transaction_start()
     261        self.tdb.text["bloe"] = "1"
     262        self.tdb.transaction_prepare_commit()
     263        self.tdb.transaction_commit()
     264        self.assertEquals("1", self.tdb.text["bloe"])
     265
     266    def test_iterkeys(self):
     267        self.tdb.text["bloe"] = "2"
     268        self.tdb.text["bla"] = "25"
     269        if sys.version_info >= (3, 0):
     270            i = self.tdb.text.keys()
     271        else:
     272            i = self.tdb.text.iterkeys()
     273        self.assertEquals(set(["bloe", "bla"]), set([next(i), next(i)]))
     274
     275    def test_clear(self):
     276        self.tdb.text["bloe"] = "2"
     277        self.tdb.text["bla"] = "25"
     278        self.assertEquals(2, len(list(self.tdb)))
     279        self.tdb.clear()
     280        self.assertEquals(0, len(list(self.tdb)))
     281
     282    def test_repack(self):
     283        self.tdb.text["foo"] = "abc"
     284        self.tdb.text["bar"] = "def"
     285        del self.tdb.text["foo"]
     286        self.tdb.repack()
     287
     288    def test_len(self):
     289        self.assertEquals(0, len(list(self.tdb.text)))
     290        self.tdb.text["entry"] = "value"
     291        self.assertEquals(1, len(list(self.tdb.text)))
     292
     293    def test_text_and_binary(self):
     294        text = u'\xfa\u0148\xef\xe7\xf8\xf0\xea'
     295        bytestr = text.encode('utf-8')
     296        self.tdb[b"entry"] = bytestr
     297        self.tdb.text[u"entry2"] = text
     298        self.assertEquals(self.tdb.text["entry"], text)
     299        self.assertEquals(self.tdb[b"entry2"], bytestr)
     300        assert self.tdb.text.raw == self.tdb
    166301
    167302
Note: See TracChangeset for help on using the changeset viewer.