~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_file_names.py

  • Committer: Robert Collins
  • Date: 2007-08-06 05:47:32 UTC
  • mto: (2592.3.81 repository)
  • mto: This revision was merged to the branch mainline in revision 2933.
  • Revision ID: robertc@robertcollins.net-20070806054732-0w8j16bf4upvt2nu
Change file_names allocation to be done by the user, not the FileNames class.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
            names.save()
34
34
            self.assertEqual('', t.get_bytes(name))
35
35
        
36
 
    def test_allocate_trivial(self):
37
 
        t = self.get_transport()
38
 
        names = FileNames(t, 'index')
39
 
        names.initialise()
40
 
        name = names.allocate()
41
 
        self.assertEqual('0', name)
42
 
        self.assertFalse(t.has('index'))
43
 
        name = names.allocate()
44
 
        self.assertEqual('1', name)
45
 
        self.assertFalse(t.has('index'))
46
 
 
47
 
    def test_allocate_overrun(self):
 
36
    def test_allocate_name_does_not_error(self):
 
37
        t = self.get_transport()
 
38
        names = FileNames(t, 'index')
 
39
        names.initialise()
 
40
        names.allocate('0')
 
41
        self.assertFalse(t.has('index'))
 
42
 
 
43
    def test_allocate_two_names_succeeds(self):
 
44
        t = self.get_transport()
 
45
        names = FileNames(t, 'index')
 
46
        names.initialise()
 
47
        names.allocate('0')
 
48
        names.allocate('1')
 
49
        self.assertFalse(t.has('index'))
 
50
 
 
51
    def test_exceeding_the_allocation_cap_errors(self):
48
52
        t = self.get_transport()
49
53
        names = FileNames(t, 'index')
50
54
        names.initialise()
51
55
        names._cap = 5
52
56
        for number in xrange(5):
53
 
            name = names.allocate()
54
 
        self.assertRaises(errors.BzrError, names.allocate)
 
57
            name = names.allocate(str(number))
 
58
        self.assertRaises(errors.BzrError, names.allocate, '6')
55
59
 
56
60
    def test_load(self):
57
61
        t = self.get_transport()
58
62
        names = FileNames(t, 'index')
59
63
        names.initialise()
60
 
        names.allocate()
61
 
        names.allocate()
 
64
        names.allocate('0')
 
65
        names.allocate('1')
62
66
        names.save()
63
67
        names = FileNames(t, 'index')
64
68
        names.load()
77
81
        t = self.get_transport()
78
82
        names = FileNames(t, 'index')
79
83
        names.initialise()
80
 
        names.allocate()
81
 
        names.allocate()
 
84
        names.allocate('0')
 
85
        names.allocate('1')
82
86
        self.assertEqual(set(['0', '1']), names.names())
83
87
 
84
88
    def test_names_on_unlistable_works(self):
85
89
        t = self.get_transport()
86
90
        names = FileNames(t, 'index')
87
91
        names.initialise()
88
 
        names.allocate()
89
 
        names.allocate()
 
92
        names.allocate('0')
 
93
        names.allocate('1')
90
94
        names.save()
91
95
        names = FileNames(
92
96
            get_transport('unlistable+' + self.get_url()), 'index')
97
101
        t = self.get_transport()
98
102
        names = FileNames(t, 'index')
99
103
        names.initialise()
100
 
        name1 = names.allocate()
101
 
        name2 = names.allocate()
102
 
        names.remove(name1)
103
 
        self.assertEqual(set([name2]), names.names())
 
104
        names.allocate('0')
 
105
        names.allocate('1')
 
106
        names.remove('0')
 
107
        self.assertEqual(set(['1']), names.names())
 
108
 
 
109
    def test_roundtrip_hash_name(self):
 
110
        t = self.get_transport()
 
111
        names = FileNames(t, 'index')
 
112
        names.initialise()
 
113
        names.allocate('0123456789abcdef0123456789abcdef')
 
114
        names.save()
 
115
        names = FileNames(t, 'index')
 
116
        names.load()
 
117
        self.assertEqual(set(['0123456789abcdef0123456789abcdef']),
 
118
            names.names())
 
119