1+ import pytest
2+
13from ted_sws import config
24from 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
46from 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
1011def 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