<s> from __future__ import unicode_literals <EOL> from calendar import monthrange <EOL> import datetime <EOL> from django . core . urlresolvers import reverse <EOL> from django . utils . six . moves import xrange <EOL> from . event_factory import create_event , SetMeUp <EOL> class WeeklyRepeatingChunkEventListViewTest ( SetMeUp ) : <EOL> """<STR_LIT>""" <EOL> def check_dates ( self , event , valid_dates ) : <EOL> """<STR_LIT>""" <EOL> for year , dates in valid_dates . items ( ) : <EOL> for month , days in dates . items ( ) : <EOL> response = self . client . get ( reverse ( <EOL> '<STR_LIT>' , kwargs = { '<STR_LIT>' : year , '<STR_LIT>' : month } <EOL> ) ) <EOL> self . clean_whitespace ( response ) <EOL> if days : <EOL> self . assertContains ( response , event . title ) <EOL> else : <EOL> self . assertNotContains ( response , event . title ) <EOL> for day in days : <EOL> self . assertContains ( response , self . cal_str ( day ) ) <EOL> [ self . assertNotContains ( response , self . cal_str ( day ) ) for <EOL> day in xrange ( <NUM_LIT:1> , monthrange ( <NUM_LIT> , int ( month ) ) [ <NUM_LIT:1> ] + <NUM_LIT:1> ) <EOL> if day not in days ] <EOL> def test_weekly_repeating_chunk_two_days_span_two_months ( self ) : <EOL> """<STR_LIT>""" <EOL> event = create_event ( <EOL> start_date = ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ) , <EOL> end_date = ( <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT:1> ) , <EOL> created_by = self . user , <EOL> title = "<STR_LIT>" , <EOL> description = "<STR_LIT>" , <EOL> repeat = "<STR_LIT>" , <EOL> end_repeat = datetime . date ( <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> ) <EOL> ) <EOL> valid_dates = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ ] <EOL> } <EOL> } <EOL> self . check_dates ( event , valid_dates ) <EOL> def test_weekly_repeating_chunk_six_days_span_two_months ( self ) : <EOL> """<STR_LIT>""" <EOL> event = create_event ( <EOL> start_date = ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ) , <EOL> end_date = ( <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT:2> ) , <EOL> created_by = self . user , <EOL> title = "<STR_LIT>" , <EOL> description = "<STR_LIT>" , <EOL> repeat = "<STR_LIT>" <EOL> ) <EOL> invalid_dates = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:8> , <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:10> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:7> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:4> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:9> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:6> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:4> , <NUM_LIT:11> , <NUM_LIT> , <NUM_LIT> ] , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:8> , <NUM_LIT:15> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:9> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> } <EOL> } <EOL> for year , dates in invalid_dates . items ( ) : <EOL> for month , days in dates . items ( ) : <EOL> response = self . client . get ( reverse ( <EOL> '<STR_LIT>' , kwargs = { '<STR_LIT>' : year , '<STR_LIT>' : month } <EOL> ) ) <EOL> self . clean_whitespace ( response ) <EOL> self . assertContains ( response , event . title ) <EOL> for day in days : <EOL> self . assertNotContains ( response , self . cal_str ( day ) ) <EOL> [ self . assertContains ( response , self . cal_str ( day ) ) for <EOL> day in xrange ( <NUM_LIT:1> , monthrange ( <NUM_LIT> , int ( month ) ) [ <NUM_LIT:1> ] + <NUM_LIT:1> ) <EOL> if day not in days ] <EOL> def test_weekly_repeating_chunk_three_days_span_one_month ( self ) : <EOL> """<STR_LIT>""" <EOL> event = create_event ( <EOL> start_date = ( <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT:3> ) , <EOL> end_date = ( <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT:5> ) , <EOL> created_by = self . user , <EOL> title = "<STR_LIT>" , <EOL> description = "<STR_LIT>" , <EOL> repeat = "<STR_LIT>" <EOL> ) <EOL> valid_dates = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ] , <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ] <EOL> } <EOL> } <EOL> self . check_dates ( event , valid_dates ) <EOL> def test_weekly_repeating_chunk_three_days_span_one_month2 ( self ) : <EOL> """<STR_LIT>""" <EOL> event = create_event ( <EOL> start_date = ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ) , <EOL> end_date = ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:16> ) , <EOL> created_by = self . user , <EOL> title = "<STR_LIT>" , <EOL> description = "<STR_LIT>" , <EOL> repeat = "<STR_LIT>" <EOL> ) <EOL> valid_dates = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT:10> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:5> , <NUM_LIT:6> , <NUM_LIT:7> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:20> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:7> , <NUM_LIT:8> , <NUM_LIT:9> , <NUM_LIT> , <NUM_LIT:15> , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:30> ] , <EOL> } <EOL> } <EOL> self . check_dates ( event , valid_dates ) <EOL> def test_weekly_repeating_chunk_three_days_span_one_month3 ( self ) : <EOL> """<STR_LIT>""" <EOL> event = create_event ( <EOL> start_date = ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ) , <EOL> end_date = ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT> ) , <EOL> created_by = self . user , <EOL> title = "<STR_LIT>" , <EOL> description = "<STR_LIT>" , <EOL> repeat = "<STR_LIT>" <EOL> ) <EOL> days_31 = [ x for x in xrange ( <NUM_LIT:1> , <NUM_LIT:32> ) ] <EOL> days_30 = [ x for x in xrange ( <NUM_LIT:1> , <NUM_LIT> ) ] <EOL> dm = dict . fromkeys ( [ '<STR_LIT:5>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , days_31 ) <EOL> dm2 = dict . fromkeys ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , days_30 ) <EOL> dm . update ( dm2 ) <EOL> valid_dates = dict . fromkeys ( [ '<STR_LIT>' , '<STR_LIT>' ] , dm ) <EOL> self . check_dates ( event , valid_dates ) <EOL> def test_weekly_repeating_chunk_three_days_span_one_month_end_repeat ( self ) : <EOL> """<STR_LIT>""" <EOL> event = create_event ( <EOL> start_date = ( <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT:3> ) , <EOL> end_date = ( <NUM_LIT> , <NUM_LIT:2> , <NUM_LIT:5> ) , <EOL> created_by = self . user , <EOL> title = "<STR_LIT>" , <EOL> description = "<STR_LIT>" , <EOL> repeat = "<STR_LIT>" , <EOL> end_repeat = datetime . date ( <NUM_LIT> , <NUM_LIT:3> , <NUM_LIT:4> ) <EOL> ) <EOL> valid_dates = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> , <NUM_LIT:5> , <NUM_LIT:10> , <NUM_LIT:11> , <NUM_LIT:12> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ] , <EOL> '<STR_LIT>' : [ <NUM_LIT:3> , <NUM_LIT:4> ] , '<STR_LIT>' : [ ] <EOL> } <EOL> } <EOL> self . check_dates ( event , valid_dates ) </s>
