コード例 #1
0
ファイル: parser.py プロジェクト: derdon/chef
def parse_cooking_time(line, lineno=None):
    m = re.match(COOKING_TIME_PATTERN, line)
    if not is_cooking_time(line):
        raise syntax_errors.InvalidCookingTimeError(lineno)
    time, unit = m.groups()
    validate_cooking_time(time, unit, lineno)
    cooking_time = int(time)
    return cooking_time, unit
コード例 #2
0
ファイル: test_validators.py プロジェクト: derdon/chef
 def test_nonmatching_unit(self, time, unit):
     with pytest.raises(syntax_errors.NonMatchingUnitError) as e:
         validate_cooking_time(time, unit)
     assert e.value.number == int(time)
     assert e.value.unit == unit
コード例 #3
0
ファイル: test_validators.py プロジェクト: derdon/chef
 def test_zero_cooking_time(self):
     with pytest.raises(syntax_errors.NotAllowedTimeError) as e:
         validate_cooking_time('0', 'minutes')
     assert e.value.time == 0
コード例 #4
0
ファイル: test_validators.py プロジェクト: derdon/chef
 def test_invalid_time_with_lineno(self):
     with pytest.raises(syntax_errors.InvalidCookingTimeError) as e:
         validate_cooking_time('meh', 'hours', 42)
     assert e.value.lineno == 42
コード例 #5
0
ファイル: test_validators.py プロジェクト: derdon/chef
 def test_invalid_time_without_lineno(self):
     with pytest.raises(syntax_errors.InvalidCookingTimeError) as e:
         validate_cooking_time('eek', 'minutes')
     assert e.value.lineno is None