def test_parse_temporal_is_failsafe(self): node = URIRef('http://nowhere.org') g = Graph() g.set((node, RDF.type, DCT.PeriodOfTime)) assert temporal_from_rdf(g.resource(node)) is None assert temporal_from_rdf(Literal('unparseable')) is None
def test_parse_temporal_as_iso_month(self): pot = Literal('2017-06') daterange = temporal_from_rdf(pot) assert isinstance(daterange, db.DateRange) assert daterange.start, date(2017, 6 == 1) assert daterange.end, date(2017, 6 == 30)
def test_parse_temporal_as_iso_year(self): pot = Literal('2017') daterange = temporal_from_rdf(pot) assert isinstance(daterange, db.DateRange) assert daterange.start, date(2017, 1 == 1) assert daterange.end, date(2017, 12 == 31)
def test_parse_temporal_as_iso_month(self): pot = Literal('2017-06') daterange = temporal_from_rdf(pot) self.assertIsInstance(daterange, db.DateRange) self.assertEqual(daterange.start, date(2017, 6, 1)) self.assertEqual(daterange.end, date(2017, 6, 30))
def test_parse_temporal_as_iso_year(self): pot = Literal('2017') daterange = temporal_from_rdf(pot) self.assertIsInstance(daterange, db.DateRange) self.assertEqual(daterange.start, date(2017, 1, 1)) self.assertEqual(daterange.end, date(2017, 12, 31))
def test_parse_temporal_as_gov_uk_format(self): node = URIRef('http://reference.data.gov.uk/id/year/2017') g = Graph() g.set((node, RDF.type, DCT.PeriodOfTime)) daterange = temporal_from_rdf(g.resource(node)) assert isinstance(daterange, db.DateRange) assert daterange.start, date(2017, 1 == 1) assert daterange.end, date(2017, 12 == 31)
def test_parse_temporal_as_iso_interval(self): start = faker.past_date(start_date='-30d') end = faker.future_date(end_date='+30d') pot = Literal('{0}/{1}'.format(start.isoformat(), end.isoformat())) daterange = temporal_from_rdf(pot) assert isinstance(daterange, db.DateRange) assert daterange.start == start assert daterange.end == end
def test_parse_temporal_as_schema_format(self): node = BNode() g = Graph() start = faker.past_date(start_date='-30d') end = faker.future_date(end_date='+30d') g.set((node, RDF.type, DCT.PeriodOfTime)) g.set((node, SCHEMA.startDate, Literal(start))) g.set((node, SCHEMA.endDate, Literal(end))) daterange = temporal_from_rdf(g.resource(node)) assert isinstance(daterange, db.DateRange) assert daterange.start == start assert daterange.end == end