/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_smart.py

  • Committer: Lukáš Lalinský
  • Date: 2007-12-17 17:28:25 UTC
  • mfrom: (3120 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3123.
  • Revision ID: lalinsky@gmail.com-20071217172825-tr3pqm1mhvs3gwnn
Merge bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
 
"""Tests for the smart wire/domain protocol."""
 
17
"""Tests for the smart wire/domain protocol.
 
18
 
 
19
This module contains tests for the domain-level smart requests and responses,
 
20
such as the 'Branch.lock_write' request. Many of these use specific disk
 
21
formats to exercise calls that only make sense for formats with specific
 
22
properties.
 
23
 
 
24
Tests for low-level protocol encoding are found in test_smart_transport.
 
25
"""
18
26
 
19
27
from StringIO import StringIO
20
28
import tempfile
372
380
    def test_lock_write_on_unlocked_branch(self):
373
381
        backing = self.get_transport()
374
382
        request = smart.branch.SmartServerBranchRequestLockWrite(backing)
375
 
        branch = self.make_branch('.')
 
383
        branch = self.make_branch('.', format='knit')
376
384
        repository = branch.repository
377
385
        response = request.execute(backing.local_abspath(''))
378
386
        branch_nonce = branch.control_files._lock.peek().get('nonce')
399
407
    def test_lock_write_with_tokens_on_locked_branch(self):
400
408
        backing = self.get_transport()
401
409
        request = smart.branch.SmartServerBranchRequestLockWrite(backing)
402
 
        branch = self.make_branch('.')
 
410
        branch = self.make_branch('.', format='knit')
403
411
        branch_token = branch.lock_write()
404
412
        repo_token = branch.repository.lock_write()
405
413
        branch.repository.unlock()
414
422
    def test_lock_write_with_mismatched_tokens_on_locked_branch(self):
415
423
        backing = self.get_transport()
416
424
        request = smart.branch.SmartServerBranchRequestLockWrite(backing)
417
 
        branch = self.make_branch('.')
 
425
        branch = self.make_branch('.', format='knit')
418
426
        branch_token = branch.lock_write()
419
427
        repo_token = branch.repository.lock_write()
420
428
        branch.repository.unlock()
429
437
    def test_lock_write_on_locked_repo(self):
430
438
        backing = self.get_transport()
431
439
        request = smart.branch.SmartServerBranchRequestLockWrite(backing)
432
 
        branch = self.make_branch('.')
 
440
        branch = self.make_branch('.', format='knit')
433
441
        branch.repository.lock_write()
434
442
        branch.repository.leave_lock_in_place()
435
443
        branch.repository.unlock()
456
464
    def test_unlock_on_locked_branch_and_repo(self):
457
465
        backing = self.get_transport()
458
466
        request = smart.branch.SmartServerBranchRequestUnlock(backing)
459
 
        branch = self.make_branch('.')
 
467
        branch = self.make_branch('.', format='knit')
460
468
        # Lock the branch
461
469
        branch_token = branch.lock_write()
462
470
        repo_token = branch.repository.lock_write()
479
487
    def test_unlock_on_unlocked_branch_unlocked_repo(self):
480
488
        backing = self.get_transport()
481
489
        request = smart.branch.SmartServerBranchRequestUnlock(backing)
482
 
        branch = self.make_branch('.')
 
490
        branch = self.make_branch('.', format='knit')
483
491
        response = request.execute(
484
492
            backing.local_abspath(''), 'branch token', 'repo token')
485
493
        self.assertEqual(
488
496
    def test_unlock_on_unlocked_branch_locked_repo(self):
489
497
        backing = self.get_transport()
490
498
        request = smart.branch.SmartServerBranchRequestUnlock(backing)
491
 
        branch = self.make_branch('.')
 
499
        branch = self.make_branch('.', format='knit')
492
500
        # Lock the repository.
493
501
        repo_token = branch.repository.lock_write()
494
502
        branch.repository.leave_lock_in_place()
684
692
    def test_lock_write_on_unlocked_repo(self):
685
693
        backing = self.get_transport()
686
694
        request = smart.repository.SmartServerRepositoryLockWrite(backing)
687
 
        repository = self.make_repository('.')
 
695
        repository = self.make_repository('.', format='knit')
688
696
        response = request.execute(backing.local_abspath(''))
689
697
        nonce = repository.control_files._lock.peek().get('nonce')
690
698
        self.assertEqual(SmartServerResponse(('ok', nonce)), response)
696
704
    def test_lock_write_on_locked_repo(self):
697
705
        backing = self.get_transport()
698
706
        request = smart.repository.SmartServerRepositoryLockWrite(backing)
699
 
        repository = self.make_repository('.')
 
707
        repository = self.make_repository('.', format='knit')
700
708
        repository.lock_write()
701
709
        repository.leave_lock_in_place()
702
710
        repository.unlock()
707
715
    def test_lock_write_on_readonly_transport(self):
708
716
        backing = self.get_readonly_transport()
709
717
        request = smart.repository.SmartServerRepositoryLockWrite(backing)
710
 
        repository = self.make_repository('.')
 
718
        repository = self.make_repository('.', format='knit')
711
719
        response = request.execute('')
712
720
        self.assertFalse(response.is_successful())
713
721
        self.assertEqual('LockFailed', response.args[0])
722
730
    def test_unlock_on_locked_repo(self):
723
731
        backing = self.get_transport()
724
732
        request = smart.repository.SmartServerRepositoryUnlock(backing)
725
 
        repository = self.make_repository('.')
 
733
        repository = self.make_repository('.', format='knit')
726
734
        token = repository.lock_write()
727
735
        repository.leave_lock_in_place()
728
736
        repository.unlock()
738
746
    def test_unlock_on_unlocked_repo(self):
739
747
        backing = self.get_transport()
740
748
        request = smart.repository.SmartServerRepositoryUnlock(backing)
741
 
        repository = self.make_repository('.')
 
749
        repository = self.make_repository('.', format='knit')
742
750
        response = request.execute(backing.local_abspath(''), 'some token')
743
751
        self.assertEqual(
744
752
            SmartServerResponse(('TokenMismatch',)), response)