Пример #1
0
    def test_good_timezones(self):
        date = u'2012-01-01T12:20:00'
        dt = datetime(2012, 1, 1, 12, 20, 0)
        #utc
        self.assertEqual(helper.get_datetime(date + u'-00:00'), dt)
        self.assertEqual(helper.get_datetime(date + u'+00:00'), dt)

        #positive timezone
        self.assertEqual(helper.get_datetime(date + u'+01:30'),
                         dt - timedelta(hours=1, minutes=30))
        #negative timezone
        self.assertEqual(helper.get_datetime(date + u'-01:30'),
                         dt - timedelta(hours=-1, minutes=-30))
    def test_good_timezones(self):
        date = u'2012-01-01T12:20:00'
        dt = datetime(2012, 1, 1, 12, 20, 0)
        #utc
        self.assertEqual(helper.get_datetime(date + u'-00:00'), dt)
        self.assertEqual(helper.get_datetime(date + u'+00:00'), dt)

        #positive timezone
        self.assertEqual(helper.get_datetime(date + u'+01:30'),
                         dt - timedelta(hours=1, minutes = 30))
        #negative timezone
        self.assertEqual(helper.get_datetime(date + u'-01:30'),
                         dt - timedelta(hours=-1, minutes = -30))
Пример #3
0
class TestSiteListFetchHandling(unittest.TestCase):
    goodxml = """
        <SiteList xmlns="http://isdcf.com/2010/04/SiteList" xmlns:xlink="http://www.w3.org/1999/xlink">
            <Originator>orig</Originator>
            <SystemName>sysName</SystemName>
            <DateTimeCreated>2001-01-01T15:49:40.220</DateTimeCreated>
            <FacilityList>
                <Facility id="A" modified="2011-04-07T12:10:01-00:00" xlink:href="linkA" xlink:type="simple"/>
                <Facility id="B" modified="2012-05-08T12:11:02-01:20" xlink:href="linkB" xlink:type="simple"/>
                <Facility id="C" modified="2013-06-09T12:12:03+03:40" xlink:href="linkC" xlink:type="simple"/>
            </FacilityList>
        </SiteList>
        """

    datetimeA = helper.get_datetime(u'2011-04-07T12:10:01-00:00')
    datetimeB = helper.get_datetime(u'2012-05-08T12:11:02-01:20')
    datetimeC = helper.get_datetime(u'2013-06-09T12:12:03+03:40')

    def setUp(self):
        self.sites = SiteListParser(self.goodxml)

    def test_no_date(self):
        dict = self.sites.get_sites()
        self.assertEqual(len(dict), 3)
        #datetimes should be correct, given that TestSiteListDateHandling worked
        self.assertEqual(dict[u'linkA'], self.datetimeA)
        self.assertEqual(dict[u'linkB'], self.datetimeB)
        self.assertEqual(dict[u'linkC'], self.datetimeC)

    def test_middle_date(self):
        #beginning of 2012, should only return B and C
        dict = self.sites.get_sites(datetime(2012, 1, 1, 12, 0, 0))
        self.assertEqual(len(dict), 2)
        self.assertFalse(u'linkA' in dict)
        self.assertEqual(dict[u'linkB'], self.datetimeB)
        self.assertEqual(dict[u'linkC'], self.datetimeC)

    def test_before_date(self):
        #beginning of 2011, should return all
        dict = self.sites.get_sites(datetime(2011, 1, 1, 12, 0, 0))
        self.assertEqual(len(dict), 3)
        self.assertEqual(dict[u'linkA'], self.datetimeA)
        self.assertEqual(dict[u'linkB'], self.datetimeB)
        self.assertEqual(dict[u'linkC'], self.datetimeC)

    def test_middle_date(self):
        #beginning of 2014, should not return anything
        dict = self.sites.get_sites(datetime(2014, 1, 1, 12, 0, 0))
        self.assertEqual(len(dict), 0)
Пример #4
0
 def test_dates(self):
     #normal good date
     self.assertEqual(helper.get_datetime(u'2012-01-13T12:30:00+00:00'),
                      datetime(2012, 1, 13, 12, 30, 0))
     #bad date (month 13)
     self.assertRaises(ValueError, helper.get_datetime,
                       u'2012-13-13T12:30:00+00:00')
Пример #5
0
 def __init__(self, system):
     self.active = get_boolean(system.IsActive)
     self.configuration = get_string(system.Digital3DConfiguration)
     self.install_date = get_datetime(system.InstallDate)
     self.screen_color = get_string(system.ScreenColor) # enum
     self.screen_luminance = get_uint(system.ScreenLuminance) # 1 to 29
     self.ghostbusting = get_boolean(system.Ghostbusting)
     self.ghostbusting_configuration = get_string(system.GhostbustingConfiguration)
Пример #6
0
 def __init__(self, software):
     self.kind = get_string(software.SoftwareKind) # enum
     self.producer = get_string(software.SoftwareProducer)
     self.description = get_string(software.Description)
     self.version = get_string(software.Version)
     self.filename = get_string(software.FileName)
     self.file_size = get_uint(software.FileSize)
     self.file_time = get_datetime(software.FileDateTime)
Пример #7
0
    def __init__(self, auditorium):
        self.number = get_uint(auditorium.AuditoriumNumber)
        self.name = get_string(auditorium.AuditoriumName)

        self.supports_35mm = get_boolean(auditorium.Supports35MM)
        self.screen_aspect_ratio = get_string(auditorium.ScreenAspectRatio) # enum
        self.adjustable_screen_mask = get_string(auditorium.AdjustableScreenMask) # enum
        self.audio_format = get_string(auditorium.AudioFormat)
        self.install_date = get_datetime(auditorium.AuditoriumInstallDate)
        self.large_format_type = get_string(auditorium.LargeFormatType)

        self.digital_3d_system = None
        if auditorium.Digital3DSystem:
            self.digital_3d_system = Digital3DSystem(auditorium.Digital3DSystem)

        self.devices = [Device(device) for device in auditorium.DeviceGroupList(u"Device")]
Пример #8
0
    def __init__(self, xml):
        """Parses an XML sitelist, and constructs a container holding the the XML document's data.

        :param string xml: Either the contents of an XML file, or a file handle.
            This will parse the contents and construct ``sites``.
        :param boolean validate: Defaults to true. If set, will validate the given
            XML file against the Sitelist XML Schema xsd file, as found on the `FLM-x Homepage`.

        """

        #If it's a file, we call .read() on it so that it can be consumed twice - once by XMLValidator, and once by
        #beautiful soup
        if not (isinstance(xml, str) or isinstance(xml, unicode)):
            try:
                xml = xml.read()
            except AttributeError as e:
                _logger.critical(repr(e))
                raise FlmxCriticalError(repr(e))

        validate_XML(
            xml,
            os.path.join(os.path.dirname(__file__), u'schema',
                         u'schema_sitelist.xsd'))

        soup = BeautifulSoup(xml, u"xml")

        self.originator = soup.SiteList.Originator.string
        self.system_name = soup.SiteList.SystemName.string
        facilities = []
        for facility in soup.find_all(u'Facility'):
            facLink = FacilityLink()
            facLink.id_code = facility[u'id']
            # strip the timezone from the ISO timecode
            facLink.last_modified = get_datetime(facility[u'modified'])
            facLink.xlink_href = facility[u'xlink:href']
            facLink.xlink_type = facility[u'xlink:type']

            facilities.append(facLink)
        self.facilities = sorted(facilities, key=attrgetter(u'last_modified'))
Пример #9
0
    def __init__(self, device):
        self.type = get_string(device.DeviceTypeID)
        self.id = get_string(device.DeviceIdentifier)
        self.serial = get_string(device.DeviceSerial)

        self.manufacturer_id = None
        if device.ManufacturerID:
            self.manufacturer_id = device.ManufacturerID.get_text().split(u":", 2)[2]
        self.manufacturer_name = get_string(device.ManufacturerName)

        self.model_number = get_string(device.ModelNumber)
        self.install_date = get_datetime(device.InstallDate)
        self.resolution = get_string(device.Resolution)
        self.active = get_boolean(device.IsActive)

        self.integrator = get_string(device.Integrator)
        self.vpf_finance_entity = get_string(device.VPFFinanceEntity)
        self.vpf_start_date = None
        if device.VPFStartDate:
            self.vpf_start_date = get_date(device.VPFStartDate)

        self.ip_addresses = []
        if device.IPAddressList:
            self.ip_addresses = [IPAddress(ip_address) for ip_address in device.IPAddressList(u"IPAddress")]

        self.software = []
        if device.SoftwareList:
            self.software = [Software(program) for program in device.SoftwareList(u"Software")]

        self.certificates = []
        if device.KeyInfoList:
            self.certificates = [Certificate(certificate) for certificate in device.KeyInfoList(u"X509Data")]

        self.watermarking = []
        if device.WatermarkingList:
            self.watermarking = [Watermarking(watermark) for watermark in device.WatermarkingList(u"Watermarking")]

        self.kdm_deliveries = deliveries(device.KDMDeliveryMethodList)
        self.dcp_deliveries = deliveries(device.DCPDeliveryMethodList)
 def test_dates(self):
     #normal good date
     self.assertEqual(helper.get_datetime(u'2012-01-13T12:30:00+00:00'),
                      datetime(2012, 1, 13, 12, 30, 0))
     #bad date (month 13)
     self.assertRaises(ValueError, helper.get_datetime, u'2012-13-13T12:30:00+00:00')
 def test_no_minutes_timezone(self):
     #timezone as +00 (no minutes)
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00+01'),
                      datetime(2012, 1, 1, 11, 30, 0))
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00-01'),
                      datetime(2012, 1, 1, 13, 30, 0))
 def test_no_colon_timezone(self):
     #timezone as +0000
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00+0130'),
                      datetime(2012, 1, 1, 11, 0, 0))
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00-0130'),
                      datetime(2012, 1, 1, 14, 0, 0))
 def test_millis_no_timezone(self):
     # with millis and no tz
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00.123'),
                      datetime(2012, 1, 1, 12, 30, 1))
 def test_millis_timezones(self):
     # with millis appended - just flooring that value for the moment
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00.123+01:00'),
                      datetime(2012, 1, 1, 11, 30, 1))
 def test_no_millis_no_timezone(self):
     # missing "+00:00" or similar
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00'),
                      datetime(2012, 1, 1, 12, 30, 0))
Пример #16
0
 def test_no_minutes_timezone(self):
     #timezone as +00 (no minutes)
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00+01'),
                      datetime(2012, 1, 1, 11, 30, 0))
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00-01'),
                      datetime(2012, 1, 1, 13, 30, 0))
Пример #17
0
 def test_no_colon_timezone(self):
     #timezone as +0000
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00+0130'),
                      datetime(2012, 1, 1, 11, 0, 0))
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00-0130'),
                      datetime(2012, 1, 1, 14, 0, 0))
Пример #18
0
 def test_millis_no_timezone(self):
     # with millis and no tz
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00.123'),
                      datetime(2012, 1, 1, 12, 30, 1))
Пример #19
0
 def test_millis_timezones(self):
     # with millis appended - just flooring that value for the moment
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00.123+01:00'),
                      datetime(2012, 1, 1, 11, 30, 1))
Пример #20
0
 def test_no_millis_no_timezone(self):
     # missing "+00:00" or similar
     self.assertEqual(helper.get_datetime(u'2012-01-01T12:30:00'),
                      datetime(2012, 1, 1, 12, 30, 0))