示例#1
0
 def test_dates_bad(self):
     # pylint: disable=no-self-use
     assert_report_item_list_equal(
         Validator(
             BoolExpr(BOOL_AND, [DateInRangeExpr("date1", "date2", None)
                                 ]), ).get_reports(),
         [
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="date",
                 option_value="date1",
                 allowed_values="ISO 8601 date",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="date",
                 option_value="date2",
                 allowed_values="ISO 8601 date",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
         ],
     )
示例#2
0
 def test_date_ok(self):
     # pylint: disable=no-self-use
     assert_report_item_list_equal(
         Validator(
             BoolExpr(BOOL_AND, [DateInRangeExpr(None, "2020-02-01", None)
                                 ]), ).get_reports(),
         [],
     )
示例#3
0
 def test_inrange_start_duration(self):
     self.assert_cib(
         DateInRangeExpr("2014-06-26", None, [("years", "1")]),
         """
             <date_expression id="X-expr" operation="in_range" start="2014-06-26">
                 <duration id="X-expr-duration" years="1"/>
             </date_expression>
         """,
     )
示例#4
0
 def test_inrange_end(self):
     self.assert_cib(
         DateInRangeExpr(None, "2014-07-26", None),
         """
             <date_expression id="X-expr"
                 operation="in_range" end="2014-07-26"
             />
         """,
     )
示例#5
0
 def test_date_duration_ok(self):
     assert_report_item_list_equal(
         Validator(
             BoolExpr(
                 BOOL_AND,
                 [
                     DateInRangeExpr(
                         "2020-01-01T01:01:01+01:00",
                         None,
                         [(name, "3") for name in self.part_list],
                     )
                 ],
             ), ).get_reports(),
         [],
     )
示例#6
0
 def test_until_greater_than_since(self):
     # pylint: disable=no-self-use
     assert_report_item_list_equal(
         Validator(
             BoolExpr(
                 BOOL_AND,
                 [DateInRangeExpr("2020-02-01", "2020-01-01", None)],
             ), ).get_reports(),
         [
             fixture.error(
                 reports.codes.RULE_EXPRESSION_SINCE_GREATER_THAN_UNTIL,
                 since="2020-02-01",
                 until="2020-01-01",
             )
         ],
     )
示例#7
0
 def test_duration_bad(self):
     assert_report_item_list_equal(
         Validator(
             BoolExpr(
                 BOOL_AND,
                 [
                     DateInRangeExpr(
                         "2020-01-01",
                         None,
                         [(name, "0") for name in self.part_list] +
                         [("hours", "foo"), ("bad", "something")],
                     )
                 ],
             ), ).get_reports(),
         [
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="hours",
                 option_value="foo",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="monthdays",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="months",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="moon",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="weekdays",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="weeks",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="weekyears",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="years",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTION_VALUE,
                 option_name="yearsdays",
                 option_value="0",
                 allowed_values="a positive integer",
                 cannot_be_empty=False,
                 forbidden_characters=None,
             ),
             fixture.error(
                 reports.codes.INVALID_OPTIONS,
                 option_names=["bad"],
                 allowed=sorted(self.part_list),
                 option_type="duration",
                 allowed_patterns=[],
             ),
             fixture.error(
                 reports.codes.RULE_EXPRESSION_OPTIONS_DUPLICATION,
                 duplicate_option_list=["hours"],
             ),
         ],
     )