xref: /trunk/test/aoo-test/tests/odf/test_reload.py (revision 2cb6d6f119bbe2f78742f1c5c8538cb0d4e72ede)
1*2cb6d6f1SJim Jagielski################################################################
2*2cb6d6f1SJim Jagielski#
3*2cb6d6f1SJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
4*2cb6d6f1SJim Jagielski#  or more contributor license agreements.  See the NOTICE file
5*2cb6d6f1SJim Jagielski#  distributed with this work for additional information
6*2cb6d6f1SJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
7*2cb6d6f1SJim Jagielski#  to you under the Apache License, Version 2.0 (the
8*2cb6d6f1SJim Jagielski#  "License"); you may not use this file except in compliance
9*2cb6d6f1SJim Jagielski#  with the License.  You may obtain a copy of the License at
10*2cb6d6f1SJim Jagielski#
11*2cb6d6f1SJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
12*2cb6d6f1SJim Jagielski#
13*2cb6d6f1SJim Jagielski#  Unless required by applicable law or agreed to in writing,
14*2cb6d6f1SJim Jagielski#  software distributed under the License is distributed on an
15*2cb6d6f1SJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*2cb6d6f1SJim Jagielski#  KIND, either express or implied.  See the License for the
17*2cb6d6f1SJim Jagielski#  specific language governing permissions and limitations
18*2cb6d6f1SJim Jagielski#  under the License.
19*2cb6d6f1SJim Jagielski
20*2cb6d6f1SJim Jagielski"""Documents the worker builds (aootest_worker.ops.generate) saved in each ODF save mode and loaded again: the values the
21*2cb6d6f1SJim Jagielskichecks in data/checks/ read from the saved copy must be the ones recorded for them. Differences between save modes that are
22*2cb6d6f1SJim Jagielskiknown are rows in data/expect/reload.tsv."""
23*2cb6d6f1SJim Jagielskiimport pytest
24*2cb6d6f1SJim Jagielski
25*2cb6d6f1SJim Jagielskifrom aootest import documents
26*2cb6d6f1SJim Jagielskifrom aootest.odfversion import SAVE_MODES
27*2cb6d6f1SJim Jagielski
28*2cb6d6f1SJim Jagielskipytestmark = pytest.mark.slow
29*2cb6d6f1SJim Jagielski
30*2cb6d6f1SJim JagielskiBUILT = [s for s in documents.generated() if s.checks]
31*2cb6d6f1SJim JagielskiRELOAD = [(m, s.id, f, c["name"]) for m in SAVE_MODES for s in BUILT for f in s.checks for c in documents.load_checks(f)]
32*2cb6d6f1SJim Jagielski
33*2cb6d6f1SJim Jagielski
34*2cb6d6f1SJim Jagielski@pytest.mark.parametrize("mode,source_id,checks,name", RELOAD, ids=["%s|%s|%s" % (m, i, n) for m, i, f, n in RELOAD])
35*2cb6d6f1SJim Jagielskidef test_reload_check(odf_runs, need_mode, mode, source_id, checks, name):
36*2cb6d6f1SJim Jagielski    need_mode(mode)
37*2cb6d6f1SJim Jagielski    run = odf_runs(mode)
38*2cb6d6f1SJim Jagielski    saved = run.saved()[source_id]
39*2cb6d6f1SJim Jagielski    assert saved["out"], "not saved: %s" % saved["detail"]
40*2cb6d6f1SJim Jagielski    got = run.reload_checks()[source_id]
41*2cb6d6f1SJim Jagielski    assert "__error__" not in got, got.get("__error__")
42*2cb6d6f1SJim Jagielski    expected = {c["name"]: c["expect"] for c in documents.load_checks(checks)}[name]
43*2cb6d6f1SJim Jagielski    assert got[name] == expected
44