예제 #1
0
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']
예제 #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)