예제 #1
0
    def test_parse_basic_iso_datetime(self):

        os.environ['TZ'] = "Europe/Vienna"
        time.tzset()

        self.assertEqual(
            OrgFormat.date(
                OrgFormat.parse_basic_iso_datetime('20111219T205510Z'), True
            ),
            '<2011-12-19 Mon 21:55>'
        )

        self.assertEqual(
            OrgFormat.date(
                OrgFormat.parse_basic_iso_datetime('20111219T205510'),
                True
            ),
            '<2011-12-19 Mon 20:55>')

        self.assertEqual(
            OrgFormat.date(OrgFormat.parse_basic_iso_datetime('20111219'), False),
            '<2011-12-19 Mon>'
        )

        self.assertEqual(
            OrgFormat.date(OrgFormat.parse_basic_iso_datetime('18991230'), False),
            '<1899-12-30 Sat>'
        )

        with self.assertRaises(TimestampParseException):
            OrgFormat.parse_basic_iso_datetime('foobar')
        with self.assertRaises(TimestampParseException):
            OrgFormat.parse_basic_iso_datetime('20111219x205510Z')
        with self.assertRaises(TimestampParseException):
            OrgFormat.parse_basic_iso_datetime('20111319')
예제 #2
0
    def __get_datetime(self, mydate):
        """
        @return string: Datetime - in Org Format
        """
        mydate_tuple = OrgFormat.parse_basic_iso_datetime(mydate)

        return OrgFormat.date(mydate_tuple)
예제 #3
0
    def __get_datetime_range(self, dtstart, dtend):
        """
        @return string: Datetime - Range in Org Format
        """
        begin_tuple = OrgFormat.parse_basic_iso_datetime(dtstart)
        end_tuple = OrgFormat.parse_basic_iso_datetime(dtend)

        # handle "all-day" - events
        if begin_tuple.tm_sec == 0 and \
                begin_tuple.tm_min == 0 and \
                begin_tuple.tm_hour == 0 and \
                end_tuple.tm_sec == 0 and \
                end_tuple.tm_min == 0 and \
                end_tuple.tm_hour == 0:
            # we have to subtract 1 day to get the correct dates
            end_tuple = time.localtime(time.mktime(end_tuple) - 24 * 60 * 60)

        return OrgFormat.daterange_autodetect_time(begin_tuple, end_tuple)
예제 #4
0
    def __write(self):
        """
        write attributes to writer (make an org_sub_item)
        """
        logging.debug("msg:%s", self.__msg)
        self.__msg = self.__msg.splitlines()
        subject = ""
        notes = ""

        # idea: look for the first -nonempty- message
        if len(self.__msg) > 0:
            start_notes = 0
            for i in range(len(self.__msg)):
                if self.__msg[i].strip() != "":
                    subject = self.__msg[i].strip()
                    start_notes = i + 1
                    break

            if len(self.__msg) > start_notes:
                for n in self.__msg[start_notes:]:
                    if n != "":
                        notes += n + "\n"

        output = "%s (r%d): %s" % (self.__author, self.__rev, subject)

        properties = OrgProperties(data_for_hashing=self.__author + subject)
        timestamp = OrgFormat.date(OrgFormat.parse_basic_iso_datetime(
            self.__date),
                                   show_time=True)
        properties.add("REVISION", self.__rev)

        if self.__grepauthor == None or \
        (self.__author.strip() == self.__grepauthor.strip()):
            self._writer.write_org_subitem(output=output,
                                           timestamp=timestamp,
                                           note=notes,
                                           properties=properties)