1# -*- coding: utf-8 -*-
2"""Backwards compatibility for version 0.6.0.dev0 API."""
3from __future__ import absolute_import
4import datatest
5from datatest.__past__ import api08
6from datatest.__past__ import api07
7from datatest.__past__ import api06
8from datatest import DataTestCase
9
10datatest.DataAssertionError = datatest.__past__.api07_error.DataError
11
12# Acceptances.
13DataTestCase.allowSpecified = DataTestCase.allowOnly
14DataTestCase.allowUnspecified = DataTestCase.allowAny
15DataTestCase.allowDeviationPercent = DataTestCase.allowPercentDeviation
16
17# Assertions.
18from .api06 import _assertDataCount
19DataTestCase.assertValueCount = _assertDataCount
20
21DataTestCase.assertColumnSet = DataTestCase.assertSubjectColumns
22DataTestCase.assertValueSet = DataTestCase.assertSubjectSet
23DataTestCase.assertValueSum = DataTestCase.assertSubjectSum
24DataTestCase.assertValueRegex = DataTestCase.assertSubjectRegex
25DataTestCase.assertValueNotRegex = DataTestCase.assertSubjectNotRegex
26
27
28def _assertColumnSubset(self, ref=None, msg=None):
29    """Test that the set of subject columns is a subset of reference
30    columns.  If *ref* is provided, it is used in-place of the set
31    from ``referenceData``.
32    """
33    try:
34        self.assertColumnSet(ref, msg)
35    except datatest.DataAssertionError:
36        with self.allowMissing():
37            self.assertColumnSet(ref, msg)
38
39DataTestCase.assertColumnSubset = _assertColumnSubset
40
41
42def _assertColumnSuperset(self, ref=None, msg=None):
43    """Test that the set of subject columns is a superset of reference
44    columns.  If *ref* is provided, it is used in-place of the set
45    from ``referenceData``.
46    """
47    try:
48        self.assertColumnSet(ref, msg)
49    except datatest.DataAssertionError:
50        with self.allowExtra():
51            self.assertColumnSet(ref, msg)
52
53DataTestCase.assertColumnSuperset = _assertColumnSuperset
54
55
56def _assertValueSubset(self, column, ref=None, msg=None, **filter_by):
57    """Test that the set of subject values is a subset of reference
58    values for the given *column*.  If *ref* is provided, it is used
59    in place of the set from ``referenceData``.
60    """
61    try:
62        self.assertValueSet(column, ref, msg, **filter_by)
63    except datatest.DataAssertionError:
64        with self.allowMissing():
65            self.assertValueSet(column, ref, msg, **filter_by)
66
67DataTestCase.assertValueSubset = _assertValueSubset
68
69
70def _assertValueSuperset(self, column, ref=None, msg=None, **filter_by):
71    """Test that the set of subject values is a superset of reference
72    values for the given *column*.  If *ref* is provided, it is used
73    in place of the set from ``referenceData``.
74    """
75    try:
76        self.assertValueSet(column, ref, msg, **filter_by)
77    except datatest.DataAssertionError:
78        with self.allowExtra():
79            self.assertValueSet(column, ref, msg, **filter_by)
80
81DataTestCase.assertValueSuperset = _assertValueSuperset
82