~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_versionedfile.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-03-12 00:16:49 UTC
  • mfrom: (4111.1.1 VersionedFiles.add_api)
  • Revision ID: pqm@pqm.ubuntu.com-20090312001649-6tvc2mmeyw992st3
(robertc) Add a groupcompress sort order for get_record_stream.
        (Robert Collins, John Arbash Meinel)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1615
1615
                }
1616
1616
        return keys, sort_order
1617
1617
 
 
1618
    def get_keys_and_groupcompress_sort_order(self):
 
1619
        """Get diamond test keys list, and their groupcompress sort ordering."""
 
1620
        if self.key_length == 1:
 
1621
            keys = [('merged',), ('left',), ('right',), ('base',)]
 
1622
            sort_order = {('merged',):0, ('left',):1, ('right',):1, ('base',):2}
 
1623
        else:
 
1624
            keys = [
 
1625
                ('FileA', 'merged'), ('FileA', 'left'), ('FileA', 'right'),
 
1626
                ('FileA', 'base'),
 
1627
                ('FileB', 'merged'), ('FileB', 'left'), ('FileB', 'right'),
 
1628
                ('FileB', 'base'),
 
1629
                ]
 
1630
            sort_order = {
 
1631
                ('FileA', 'merged'):0, ('FileA', 'left'):1, ('FileA', 'right'):1,
 
1632
                ('FileA', 'base'):2,
 
1633
                ('FileB', 'merged'):3, ('FileB', 'left'):4, ('FileB', 'right'):4,
 
1634
                ('FileB', 'base'):5,
 
1635
                }
 
1636
        return keys, sort_order
 
1637
 
1618
1638
    def test_get_record_stream_interface_ordered(self):
1619
1639
        """each item in a stream has to provide a regular interface."""
1620
1640
        files = self.get_versionedfiles()
1648
1668
 
1649
1669
        self.assertStreamOrder(sort_order, seen, keys)
1650
1670
 
 
1671
    def test_get_record_stream_interface_groupcompress(self):
 
1672
        """each item in a stream has to provide a regular interface."""
 
1673
        files = self.get_versionedfiles()
 
1674
        self.get_diamond_files(files)
 
1675
        keys, sort_order = self.get_keys_and_groupcompress_sort_order()
 
1676
        parent_map = files.get_parent_map(keys)
 
1677
        entries = files.get_record_stream(keys, 'groupcompress', False)
 
1678
        seen = []
 
1679
        self.capture_stream(files, entries, seen.append, parent_map)
 
1680
        self.assertStreamOrder(sort_order, seen, keys)
 
1681
 
1651
1682
    def assertStreamOrder(self, sort_order, seen, keys):
1652
1683
        self.assertEqual(len(set(seen)), len(keys))
1653
1684
        if self.key_length == 1: