示例#1
0
文件: store.py 项目: likulogy/pootle
def param_update_store_test(en_tutorial_po, member, member2,
                            update_store_test_names):
    test = _setup_store_test(en_tutorial_po, member, member2,
                             UPDATE_STORE_TESTS[update_store_test_names])
    update_store(test[0],
                 units=test[1],
                 store_revision=test[2],
                 user=member2,
                 resolve_conflict=test[3])
    return test
示例#2
0
文件: store.py 项目: Doist/pootle
def _setup_store_test(store, member, member2, test):
    from pootle_store.models import FILE_WINS, POOTLE_WINS

    setup = test.get("setup", None)

    if setup is None:
        setup = [(DEFAULT_STORE_UNITS_1),
                 (DEFAULT_STORE_UNITS_1 + DEFAULT_STORE_UNITS_2)]

    for units in setup:
        store_revision = store.get_max_unit_revision()
        print "setup store: %s %s" % (store_revision, units)
        update_store(store, store_revision=store_revision, units=units,
                     user=member)
        for unit in store.units:
            comment = ("Set up unit(%s) with store_revision: %s"
                       % (unit.source_f, store_revision))
            _create_comment_on_unit(unit, member, comment)

    store_revision, units_update = test["update_store"]
    revision_min = store.get_max_unit_revision()
    units_before = [
        unit for unit in store.unit_set.all().order_by("index")]

    fs_wins = test.get("fs_wins", True)
    if fs_wins:
        resolve_conflict = FILE_WINS
    else:
        resolve_conflict = POOTLE_WINS

    if store_revision == "MAX":
        store_revision = store.get_max_unit_revision()

    elif store_revision == "MIN":
        store_revision = revision_min

    elif store_revision == "MID":
        revisions = [unit.revision for unit in units_before]
        store_revision = sum(revisions) / len(revisions)

    return (store, units_update, store_revision, resolve_conflict,
            units_before, member, member2)