@@ -84,7 +84,65 @@ def mock_named_temporary_file():
84
84
assert primary_stub .get_metadata .calls == [pretend .call (file .path )]
85
85
assert primary_stub .get .calls == [pretend .call (file .path )]
86
86
assert archive_stub .store .calls == [
87
- pretend .call (file .path , "/tmp/wutang" , meta = {"fizz" : "buzz" })
87
+ pretend .call (file .path , "/tmp/wutang" , meta = {"fizz" : "buzz" }),
88
+ ]
89
+ else :
90
+ assert primary_stub .get_metadata .calls == []
91
+ assert primary_stub .get .calls == []
92
+ assert archive_stub .store .calls == []
93
+
94
+
95
+ @pytest .mark .parametrize ("archived" , [True , False ])
96
+ def test_sync_file_to_archive_includes_bonus_files (db_request , monkeypatch , archived ):
97
+ file = FileFactory (
98
+ archived = archived ,
99
+ has_signature = True ,
100
+ metadata_file_sha256_digest = "deadbeefdeadbeefdeadbeefdeadbeef" ,
101
+ )
102
+ primary_stub = pretend .stub (
103
+ get_metadata = pretend .call_recorder (lambda path : {"fizz" : "buzz" }),
104
+ get = pretend .call_recorder (
105
+ lambda path : pretend .stub (read = lambda : b"my content" )
106
+ ),
107
+ )
108
+ archive_stub = pretend .stub (
109
+ store = pretend .call_recorder (lambda filename , path , meta = None : None )
110
+ )
111
+ db_request .find_service = pretend .call_recorder (
112
+ lambda iface , name = None : {"primary" : primary_stub , "archive" : archive_stub }[
113
+ name
114
+ ]
115
+ )
116
+
117
+ @contextmanager
118
+ def mock_named_temporary_file ():
119
+ yield pretend .stub (
120
+ name = "/tmp/wutang" ,
121
+ write = lambda bites : None ,
122
+ flush = lambda : None ,
123
+ )
124
+
125
+ monkeypatch .setattr (tempfile , "NamedTemporaryFile" , mock_named_temporary_file )
126
+
127
+ sync_file_to_archive (db_request , file .id )
128
+
129
+ assert file .archived
130
+
131
+ if not archived :
132
+ assert primary_stub .get_metadata .calls == [
133
+ pretend .call (file .path ),
134
+ pretend .call (file .metadata_path ),
135
+ pretend .call (file .pgp_path ),
136
+ ]
137
+ assert primary_stub .get .calls == [
138
+ pretend .call (file .path ),
139
+ pretend .call (file .metadata_path ),
140
+ pretend .call (file .pgp_path ),
141
+ ]
142
+ assert archive_stub .store .calls == [
143
+ pretend .call (file .path , "/tmp/wutang" , meta = {"fizz" : "buzz" }),
144
+ pretend .call (file .metadata_path , "/tmp/wutang" , meta = {"fizz" : "buzz" }),
145
+ pretend .call (file .pgp_path , "/tmp/wutang" , meta = {"fizz" : "buzz" }),
88
146
]
89
147
else :
90
148
assert primary_stub .get_metadata .calls == []
0 commit comments