<s> import doctest <EOL> import locale <EOL> import unittest <EOL> import salt . ext . monitor . cron <EOL> class TestTime ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . cron = salt . ext . monitor . cron . CronParser ( ) <EOL> def _test_interval ( self , intime , expected ) : <EOL> actual = salt . ext . monitor . cron . parse_interval ( intime ) <EOL> self . assertEqual ( actual , expected ) <EOL> def _test_parse_cron ( self , intime , expected ) : <EOL> actual = self . cron . parse ( intime ) <EOL> self . assertEqual ( actual , expected ) <EOL> def _test_parse_group ( self , unit , values , expected ) : <EOL> for value in values : <EOL> self . _test_parse_cron ( { unit : value } , { unit : [ expected ] } ) <EOL> def test_doc ( self ) : <EOL> doctest . testmod ( salt . ext . monitor . cron ) <EOL> def test_interval ( self ) : <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT:1> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT:1> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT> * <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT> * <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT> * <NUM_LIT> * <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:1> } , <NUM_LIT> * <NUM_LIT> * <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:10> } , <NUM_LIT:10> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT> } , <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:0.5> } , <NUM_LIT:30> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:5> } , <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT> } , <NUM_LIT:15> * <NUM_LIT> ) <EOL> self . _test_interval ( { '<STR_LIT>' : <NUM_LIT:2> , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : <NUM_LIT:4> , <EOL> '<STR_LIT>' : <NUM_LIT:5> } , <NUM_LIT:2> * <NUM_LIT> * <NUM_LIT> * <NUM_LIT> + <EOL> <NUM_LIT:3> * <NUM_LIT> * <NUM_LIT> + <EOL> <NUM_LIT:4> * <NUM_LIT> + <EOL> <NUM_LIT:5> ) <EOL> def test_cron_parse_month ( self ) : <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:1>' ) , <NUM_LIT:1> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:2>' ) , <NUM_LIT:2> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:3>' ) , <NUM_LIT:3> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:4>' ) , <NUM_LIT:4> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:5>' ) , <NUM_LIT:5> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:6> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:7> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:8> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:9> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:10> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:11> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:12> ) <EOL> self . _test_parse_cron ( { '<STR_LIT>' : '<STR_LIT:*>' } , <EOL> { '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> ] } ) <EOL> self . _test_parse_cron ( { '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:11> , <NUM_LIT:12> ] } ) <EOL> self . _test_parse_cron ( { '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:11> , <NUM_LIT:12> ] } ) <EOL> self . _test_parse_cron ( { '<STR_LIT>' : '<STR_LIT>' } , <EOL> { '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:5> , <NUM_LIT:11> , <NUM_LIT:12> ] } ) <EOL> def test_cron_parse_weekday ( self ) : <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:1>' ) , <NUM_LIT:1> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:2>' ) , <NUM_LIT:2> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:3>' ) , <NUM_LIT:3> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:4>' ) , <NUM_LIT:4> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:5>' ) , <NUM_LIT:5> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:6> ) <EOL> self . _test_parse_group ( '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <NUM_LIT:7> ) <EOL> self . _test_parse_cron ( { '<STR_LIT>' : '<STR_LIT:*>' } , { '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ] } ) <EOL> self . _test_parse_cron ( { "<STR_LIT>" : "<STR_LIT>" } , { "<STR_LIT>" : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> ] } ) <EOL> self . _test_parse_cron ( { "<STR_LIT>" : "<STR_LIT>" } , { "<STR_LIT>" : [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> ] } ) <EOL> self . _test_parse_cron ( { "<STR_LIT>" : "<STR_LIT>" } , { "<STR_LIT>" : [ <NUM_LIT:4> , <NUM_LIT:6> ] } ) <EOL> def test_suite ( ) : <EOL> locale . setlocale ( locale . LC_ALL , '<STR_LIT:C>' ) <EOL> return unittest . TestLoader ( ) . loadTestsFromName ( __name__ ) </s>
