def test_version_sort(): versions = Version_dict() versions['0.1'] = 'create-databases' versions['0.2'] = 'create-tables' versions['1.0'] = 'feature-cool' versions['1.0.1'] = 'hotfix-your-mom' versions['2.0'] = 'release-beta' versions['2.5'] = 'halfway-super-pack' versions['3.0'] = 'upgraded-armory' versions['10.0.2'] = 'coolio-bigalo' start = versions.slice(start='2.0') assert len(start) == 4 assert start.keys() == ['2.0', '2.5', '3.0', '10.0.2'] stop = versions.slice(stop='2.0') assert len(stop) == 5 assert stop.keys() == ['0.1', '0.2', '1.0', '1.0.1', '2.0'] startstop = versions.slice('1.0', '2.0') assert len(startstop) == 3 assert startstop.keys() == ['1.0', '1.0.1', '2.0']
def __init__( self, host="localhost", port=3306, user=None, password=None, packages=None, ): assert packages is not None, "packages argument must be a list of package file paths. (preferably named with the .pack extension)" self._conn = MySQLdb.connect( host=host, port=port, user=user, passwd=password, cursorclass=MySQLdb.cursors.DictCursor, ) self._cursor = self._conn.cursor() self.quiet = False # From: <path>/<version>_<name>.<ext> # To: self[<version>] = ( <name>, <path> ) self._packs = Version_dict() for pack in packages: f, ext = os.path.splitext(os.path.basename(pack)) v, name = f.split('_', 1) self._packs[v] = (pack, name)