Skip to content

Commit a49be43

Browse files
fix tests for notice_publisher
1 parent cc3ce24 commit a49be43

4 files changed

Lines changed: 17 additions & 26 deletions

File tree

infra/sftp/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ services:
1111
- SFTP_PORT=${SFTP_PORT}
1212
command: ${SFTP_USER}:${SFTP_PASSWORD}:::upload
1313
ports:
14-
- ${SFTP_PORT:-2235}:${SFTP_PORT}
14+
- ${SFTP_PORT:-2235}:22
1515
networks:
1616
- sftp-net
1717
- proxy-net

ted_sws/notice_publisher/services/notice_publisher.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def publish_notice(notice: Notice, publisher: SFTPPublisherABC = SFTPPublisher()
2323
remote_notice_path = f"{remote_folder_path}/{notice.ted_id}.zip"
2424
source_file = tempfile.NamedTemporaryFile()
2525
source_file.write(package_content)
26-
2726
try:
2827
publisher.connect()
2928
if publisher.publish(source_path=pathlib.Path(source_file.name),
@@ -37,7 +36,7 @@ def publish_notice(notice: Notice, publisher: SFTPPublisherABC = SFTPPublisher()
3736

3837

3938
def publish_notice_by_id(notice_id: str, notice_repository: NoticeRepositoryABC,
40-
publisher: SFTPPublisherABC, remote_folder_path=None) -> bool:
39+
publisher: SFTPPublisherABC, remote_folder_path=config.SFTP_PATH) -> bool:
4140
"""
4241
This function publishes the METS manifestation of a Notice, based on notice_id, in Cellar.
4342
"""

tests/e2e/notice_publisher/adapters/test_notice_publisher.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def test_sftp_notice_publisher():
2727
with pytest.raises(Exception):
2828
sftp_publisher.publish(source_file.name + "invalid", invalid_remote_path)
2929

30-
with pytest.raises(ValueError):
30+
with pytest.raises(Exception):
3131
sftp_publisher.publish(source_file.name, None)
3232

3333
published = sftp_publisher.publish(source_file.name, remote_path)
Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
import pytest
2+
13
from ted_sws import config
24
from ted_sws.core.model.manifestation import METSManifestation, RDFManifestation
3-
from ted_sws.core.model.notice import NoticeStatus, UnsupportedStatusTransition
5+
from ted_sws.core.model.notice import NoticeStatus
46
from ted_sws.data_manager.adapters.notice_repository import NoticeRepository
5-
from ted_sws.notice_publisher.services.notice_publisher import publish_single_notice, NoticePublishBuilder
6-
from ted_sws.notice_publisher.adapters.sftp_notice_publisher import SFTPNoticePublisher
7-
import pytest
7+
from ted_sws.notice_publisher.adapters.sftp_notice_publisher import SFTPPublisher
8+
from ted_sws.notice_publisher.services.notice_publisher import publish_notice_by_id, publish_notice
89

910

1011
def test_notice_publisher(notice_2016, mongodb_client):
@@ -23,34 +24,25 @@ def test_notice_publisher(notice_2016, mongodb_client):
2324

2425
notice_repository.update(notice)
2526

26-
with pytest.raises(UnsupportedStatusTransition):
27-
publish_single_notice(notice, notice_repository, config.SFTP_HOST, config.SFTP_USER, config.SFTP_PASSWORD)
28-
2927
notice._status = NoticeStatus.ELIGIBLE_FOR_PUBLISHING
3028

3129
notice_repository.update(notice)
30+
sftp_publisher = SFTPPublisher()
3231

33-
published = publish_single_notice(notice_id, notice_repository, config.SFTP_HOST, config.SFTP_USER,
34-
config.SFTP_PASSWORD)
32+
published = publish_notice_by_id(notice_id, notice_repository, publisher=sftp_publisher)
3533

3634
assert published
3735

3836
with pytest.raises(Exception):
3937
notice._status = NoticeStatus.ELIGIBLE_FOR_PUBLISHING
40-
publish_single_notice(notice, notice_repository, config.SFTP_HOST, config.SFTP_USER, config.SFTP_PASSWORD,
41-
remote_path="/invalid_path")
42-
43-
with pytest.raises(Exception):
44-
notice._status = NoticeStatus.ELIGIBLE_FOR_PUBLISHING
45-
publish_single_notice("invalid_notice_id", notice_repository, config.SFTP_HOST, config.SFTP_USER,
46-
config.SFTP_PASSWORD)
38+
publish_notice(notice, publisher=sftp_publisher,
39+
remote_folder_path="/invalid_path")
4740

4841
with pytest.raises(ValueError):
4942
notice._status = NoticeStatus.ELIGIBLE_FOR_PUBLISHING
5043
notice._mets_manifestation = None
51-
publish_single_notice(notice, notice_repository, config.SFTP_HOST, config.SFTP_USER, config.SFTP_PASSWORD)
52-
53-
notice_publisher = SFTPNoticePublisher(config.SFTP_HOST, config.SFTP_USER, config.SFTP_PASSWORD)
54-
notice_publisher.connect()
55-
publish_builder = NoticePublishBuilder(notice, notice_repository, notice_publisher)
56-
notice_publisher.remove(publish_builder.build_remote_path())
44+
publish_notice(notice, publisher=sftp_publisher)
45+
sftp_publisher.connect()
46+
sftp_publisher.remove(f"{config.SFTP_PATH}/{notice.ted_id}.zip")
47+
sftp_publisher.disconnect()
48+
assert not sftp_publisher.is_connected

0 commit comments

Comments
 (0)