Ejemplo n.º 1
0
def _write_export_file(file_path: str, note_source: Union[Iterable[Note],
                                                          Note]) -> None:
    with open(file_path, "w", encoding="utf-8") as f:
        logger.debug(f"Writing file {file_path}")

        now = datetime.utcnow().strftime("%Y%m%dT%H%M%SZ")

        f.write(ENEX_HEAD.format(export_date=now))

        note_formatter = NoteFormatter()

        if isinstance(note_source, Note):
            if logger.getEffectiveLevel() == logging.DEBUG:  # pragma: no cover
                n_info = log_format_note(note_source)
                logger.debug(f"Exporting note {n_info}")
            f.write(note_formatter.format_note(note_source))
        else:
            for note in note_source:  # noqa: WPS440
                if logger.getEffectiveLevel(
                ) == logging.DEBUG:  # pragma: no cover
                    n_info = log_format_note(note)
                    logger.debug(f"Exporting note {n_info}")
                f.write(note_formatter.format_note(note))

        f.write(ENEX_TAIL)
Ejemplo n.º 2
0
def _write_export_file(file_path: Path, note_source: Union[Iterable[Note],
                                                           Note],
                       no_export_date: bool) -> None:
    with open(file_path, "w", encoding="utf-8") as f:
        logger.debug(f"Writing file {file_path}")

        f.write(ENEX_HEAD)

        if no_export_date:
            f.write('<en-export application="Evernote" version="10.10.5">')
        else:
            now = datetime.utcnow().strftime("%Y%m%dT%H%M%SZ")
            f.write(f'<en-export export-date="{now}"'
                    f' application="Evernote" version="10.10.5">')

        note_formatter = NoteFormatter()

        if isinstance(note_source, Note):
            if logger.getEffectiveLevel() == logging.DEBUG:  # pragma: no cover
                n_info = log_format_note(note_source)
                logger.debug(f"Exporting note {n_info}")
            f.write(note_formatter.format_note(note_source))
        else:
            for note in note_source:  # noqa: WPS440
                if logger.getEffectiveLevel(
                ) == logging.DEBUG:  # pragma: no cover
                    n_info = log_format_note(note)
                    logger.debug(f"Exporting note {n_info}")
                f.write(note_formatter.format_note(note))

        f.write(ENEX_TAIL)
Ejemplo n.º 3
0
def test_formatter_empty_note():
    formatter = NoteFormatter()

    test_empty_note = Note()
    expected_empty_note = "  <note>\n  </note>\n"

    formatted_note = formatter.format_note(test_empty_note)

    assert formatted_note == expected_empty_note
Ejemplo n.º 4
0
def test_formatter_xml_note():
    formatter = NoteFormatter()

    test_xml_note = Note(content="<?xml test xml stuff ?>\ntest content")
    expected_xml_note = (
        "  <note>\n"
        "    <content>\n"
        '      <![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'
        "test content]]>\n"
        "    </content>\n"
        "  </note>\n")

    formatted_note = formatter.format_note(test_xml_note)

    assert formatted_note == expected_xml_note
def test_note_from_future(mocker):
    formatter = NoteFormatter()

    # 9999-12-31 23:59:59
    end_of_times = 253402300799999

    # Emulate windows limit
    mock_timestamp = mocker.patch(
        "evernote_backup.note_formatter_util._get_max_timestamp"
    )
    mock_timestamp.return_value = 32503748400

    note_from_future = Note(
        title="test",
        created=end_of_times,
        updated=end_of_times,
    )

    formatted_note = formatter.format_note(note_from_future)

    assert "<created>99991231T235959Z</created>" in formatted_note
    assert "<updated>99991231T235959Z</updated>" in formatted_note
Ejemplo n.º 6
0
def test_formatter_empty_tags_resources():
    formatter = NoteFormatter()

    formatted_note = formatter.format_note(test_note_data_empty_tags)

    assert formatted_note == expected_empty_tags
Ejemplo n.º 7
0
def test_formatter():
    formatter = NoteFormatter()

    formatted_note = formatter.format_note(test_note_data)

    assert formatted_note == expected