|  | @@ -1,10 +1,19 @@
 | 
	
		
			
				|  |  |  import datetime
 | 
	
		
			
				|  |  | +import typing
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import pytest
 | 
	
		
			
				|  |  |  from icalendar.prop import vCalAddress, vDDDLists, vDDDTypes, vInt, vRecur, vText
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from ics2vdir import _event_prop_equal
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +_CEST = datetime.timezone(datetime.timedelta(hours=+2))
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +def _parametrize(obj: typing.Any, params: dict) -> typing.Any:
 | 
	
		
			
				|  |  | +    for key, value in params.items():
 | 
	
		
			
				|  |  | +        obj.params.__setitem__(key, value)
 | 
	
		
			
				|  |  | +    return obj
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @pytest.mark.parametrize(
 | 
	
		
			
				|  |  |      ("prop_a", "prop_b", "expected_result"),
 | 
	
	
		
			
				|  | @@ -36,6 +45,15 @@ from ics2vdir import _event_prop_equal
 | 
	
		
			
				|  |  |              ),
 | 
	
		
			
				|  |  |              True,
 | 
	
		
			
				|  |  |          ),
 | 
	
		
			
				|  |  | +        (
 | 
	
		
			
				|  |  | +            vDDDTypes(
 | 
	
		
			
				|  |  | +                datetime.datetime(2012, 7, 3, 16, 39, 2, tzinfo=datetime.timezone.utc)
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            vDDDTypes(datetime.datetime(2012, 7, 3, 18, 39, 2, tzinfo=_CEST)),
 | 
	
		
			
				|  |  | +            # logically that should be True
 | 
	
		
			
				|  |  | +            # but shouldn't hurt to update the ics file
 | 
	
		
			
				|  |  | +            False,
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  |          (
 | 
	
		
			
				|  |  |              vDDDTypes(
 | 
	
		
			
				|  |  |                  datetime.datetime(2012, 7, 3, 16, 39, 3, tzinfo=datetime.timezone.utc)
 | 
	
	
		
			
				|  | @@ -100,6 +118,56 @@ from ics2vdir import _event_prop_equal
 | 
	
		
			
				|  |  |              ),
 | 
	
		
			
				|  |  |              False,
 | 
	
		
			
				|  |  |          ),
 | 
	
		
			
				|  |  | +        (
 | 
	
		
			
				|  |  | +            vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +            _parametrize(
 | 
	
		
			
				|  |  | +                vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +                dict(UTYPE="INDIVIDUAL", PARTSTAT="ACCEPTED"),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            False,
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        (
 | 
	
		
			
				|  |  | +            _parametrize(
 | 
	
		
			
				|  |  | +                vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +                dict(UTYPE="INDIVIDUAL", PARTSTAT="ACCEPTED"),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            _parametrize(
 | 
	
		
			
				|  |  | +                vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +                dict(UTYPE="INDIVIDUAL", PARTSTAT="ACCEPTED"),
 | 
	
		
			
				|  |  | +            ),
 | 
	
		
			
				|  |  | +            True,
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        (
 | 
	
		
			
				|  |  | +            [
 | 
	
		
			
				|  |  | +                vCalAddress("someone@somewhere.com",),
 | 
	
		
			
				|  |  | +                vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +            ],
 | 
	
		
			
				|  |  | +            [
 | 
	
		
			
				|  |  | +                vCalAddress("someone@somewhere.com",),
 | 
	
		
			
				|  |  | +                _parametrize(
 | 
	
		
			
				|  |  | +                    vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +                    dict(UTYPE="INDIVIDUAL", PARTSTAT="ACCEPTED"),
 | 
	
		
			
				|  |  | +                ),
 | 
	
		
			
				|  |  | +            ],
 | 
	
		
			
				|  |  | +            False,
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  | +        (
 | 
	
		
			
				|  |  | +            [
 | 
	
		
			
				|  |  | +                vCalAddress("someone@somewhere.com",),
 | 
	
		
			
				|  |  | +                _parametrize(
 | 
	
		
			
				|  |  | +                    vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +                    dict(UTYPE="INDIVIDUAL", PARTSTAT="ACCEPTED"),
 | 
	
		
			
				|  |  | +                ),
 | 
	
		
			
				|  |  | +            ],
 | 
	
		
			
				|  |  | +            [
 | 
	
		
			
				|  |  | +                vCalAddress("someone@somewhere.com",),
 | 
	
		
			
				|  |  | +                _parametrize(
 | 
	
		
			
				|  |  | +                    vCalAddress("someelse@somewhere.com"),
 | 
	
		
			
				|  |  | +                    dict(UTYPE="INDIVIDUAL", PARTSTAT="ACCEPTED"),
 | 
	
		
			
				|  |  | +                ),
 | 
	
		
			
				|  |  | +            ],
 | 
	
		
			
				|  |  | +            True,
 | 
	
		
			
				|  |  | +        ),
 | 
	
		
			
				|  |  |      ],
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  def test__event_prop_equal(prop_a, prop_b, expected_result):
 |