blob: da91f492dd60c9093fac283d7c2bdb371fd94667 [file] [log] [blame]
# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from branch_utility import BranchUtility, ChannelInfo
from test_data.canned_data import (CANNED_BRANCHES, CANNED_CHANNELS)
class TestBranchUtility(object):
'''Mimics BranchUtility to return valid-ish data without needing omahaproxy
data.
'''
def __init__(self, versions, channels):
''' Parameters: |version| is a mapping of versions to branches, and
|channels| is a mapping of channels to versions.
'''
self._versions = versions
self._channels = channels
@staticmethod
def CreateWithCannedData():
'''Returns a TestBranchUtility that uses 'canned' test data pulled from
older branches of SVN data.
'''
return TestBranchUtility(CANNED_BRANCHES, CANNED_CHANNELS)
def GetAllChannelInfo(self):
return tuple(self.GetChannelInfo(channel)
for channel in BranchUtility.GetAllChannelNames())
def GetChannelInfo(self, channel):
version = self._channels[channel]
return ChannelInfo(channel, self.GetBranchForVersion(version), version)
def GetStableChannelInfo(self, version):
return ChannelInfo('stable', self.GetBranchForVersion(version), version)
def GetBranchForVersion(self, version):
return self._versions[version]
def GetChannelForVersion(self, version):
if version <= self._channels['stable']:
return 'stable'
for channel in self._channels.iterkeys():
if self._channels[channel] == version:
return channel
def Older(self, channel_info):
versions = self._versions.keys()
index = versions.index(channel_info.version)
if index == len(versions) - 1:
return None
version = versions[index + 1]
return ChannelInfo(self.GetChannelForVersion(version),
self.GetBranchForVersion(version),
version)
def Newer(self, channel_info):
versions = self._versions.keys()
index = versions.index(channel_info.version)
if not index:
return None
version = versions[index - 1]
return ChannelInfo(self.GetChannelForVersion(version),
self.GetBranchForVersion(version),
version)