Project

General

Profile

« Previous | Next » 

Revision 1c65dd5c

Added by koszko over 1 year ago

adapt to changes in file path format

From now on we assume Hydrilla serves file contents at 'file/sha256/' instead of 'file/sha256-'.
With this commit we also stop using the "hash_key" property internally.

View differences:

test/unit/test_indexeddb.py
6 6

  
7 7
# This file is part of Haketilo
8 8
#
9
# Copyright (C) 2021,2022 Wojtek Kosior <koszko@koszko.org>
9
# Copyright (C) 2021, 2022 Wojtek Kosior <koszko@koszko.org>
10 10
#
11 11
# This program is free software: you can redistribute it and/or modify
12 12
# it under the terms of the CC0 1.0 Universal License as published by
......
73 73
            .then(finalize_transaction);
74 74
        returnval(promise);
75 75
        }''',
76
        sample_item, sample_files_by_hash)
76
        sample_item, {'sha256': sample_files_by_sha256})
77 77

  
78 78
    database_contents = get_db_contents(execute_in_page)
79 79

  
80 80
    assert len(database_contents['files']) == 4
81
    assert all([sample_files_by_hash[file['hash_key']] == file['contents']
81
    assert all([sample_files_by_sha256[file['sha256']] == file['contents']
82 82
                for file in database_contents['files']])
83 83
    assert all([len(file) == 2 for file in database_contents['files']])
84 84

  
85 85
    assert len(database_contents['file_uses']) == 4
86 86
    assert all([uses['uses'] == 1 for uses in database_contents['file_uses']])
87
    assert set([uses['hash_key'] for uses in database_contents['file_uses']]) \
88
        == set([file['hash_key'] for file in database_contents['files']])
87
    assert set([uses['sha256'] for uses in database_contents['file_uses']]) \
88
        == set([file['sha256'] for file in database_contents['files']])
89 89

  
90 90
    assert database_contents['mapping'] == []
91 91
    assert database_contents['resource'] == [sample_item]
......
93 93
    # See if trying to add an item without providing all its files ends in an
94 94
    # exception and aborts the transaction as it should.
95 95
    sample_item['scripts'].append(sample_file_ref('combined.js'))
96
    incomplete_files = {**sample_files_by_hash}
97
    incomplete_files.pop(sample_files['combined.js']['hash_key'])
96
    incomplete_files = {**sample_files_by_sha256}
97
    incomplete_files.pop(sample_files['combined.js']['sha256'])
98 98
    exception = execute_in_page(
99 99
        '''{
100 100
        const args = arguments;
......
112 112
        }
113 113
        returnval(try_add_item());
114 114
        }''',
115
        sample_item, incomplete_files)
115
        sample_item, {'sha256': incomplete_files})
116 116

  
117 117
    previous_database_contents = database_contents
118 118
    database_contents = get_db_contents(execute_in_page)
119 119

  
120 120
    assert 'file not present' in exception
121 121
    for key, val in database_contents.items():
122
        keyfun = lambda item: item.get('hash_key') or item['identifier']
122
        keyfun = lambda item: item.get('sha256') or item['identifier']
123 123
        assert sorted(previous_database_contents[key], key=keyfun) \
124 124
            == sorted(val,                             key=keyfun)
125 125

  
......
132 132
            .then(finalize_transaction);
133 133
        returnval(promise);
134 134
        }''',
135
        sample_item, sample_files_by_hash)
135
        sample_item, {'sha256': sample_files_by_sha256})
136 136

  
137 137
    database_contents = get_db_contents(execute_in_page)
138 138

  
......
141 141
    sample_files_list = [sample_files[name] for name in names]
142 142
    uses_list = [1, 2, 1, 1, 1]
143 143

  
144
    uses = dict([(uses['hash_key'], uses['uses'])
144
    uses = dict([(uses['sha256'], uses['uses'])
145 145
                 for uses in database_contents['file_uses']])
146
    assert uses  == dict([(file['hash_key'], nr)
146
    assert uses  == dict([(file['sha256'], nr)
147 147
                          for file, nr in zip(sample_files_list, uses_list)])
148 148

  
149
    files = dict([(file['hash_key'], file['contents'])
149
    files = dict([(file['sha256'], file['contents'])
150 150
                  for file in database_contents['files']])
151
    assert files == dict([(file['hash_key'], file['contents'])
151
    assert files == dict([(file['sha256'], file['contents'])
152 152
                          for file in sample_files_list])
153 153

  
154 154
    del database_contents['resource'][0]['source_copyright'][0]['extra_prop']
......
174 174
    sample_files_list = [sample_files[name] for name in names]
175 175
    uses_list = [1, 1]
176 176

  
177
    uses = dict([(uses['hash_key'], uses['uses'])
177
    uses = dict([(uses['sha256'], uses['uses'])
178 178
                 for uses in results[0]['file_uses']])
179
    assert uses  == dict([(file['hash_key'], 1) for file in sample_files_list])
179
    assert uses  == dict([(file['sha256'], 1) for file in sample_files_list])
180 180

  
181
    files = dict([(file['hash_key'], file['contents'])
181
    files = dict([(file['sha256'], file['contents'])
182 182
                  for file in results[0]['files']])
183
    assert files == dict([(file['hash_key'], file['contents'])
183
    assert files == dict([(file['sha256'], file['contents'])
184 184
                          for file in sample_files_list])
185 185

  
186 186
    assert results[0]['resource'] == []
......
206 206
                '0.1.1': sample_mapping
207 207
            }
208 208
        },
209
        'files': sample_files_by_hash
209
        'file': {
210
            'sha256': sample_files_by_sha256
211
        }
210 212
    }
211 213

  
212 214
    clear_indexeddb(execute_in_page)
......
350 352
                '0.1.1': sample_mapping
351 353
            }
352 354
        },
353
        'files': sample_files_by_hash
355
        'file': {
356
            'sha256': sample_files_by_sha256
357
        }
354 358
    }
355 359
    driver.switch_to.window(windows[1])
356 360
    execute_in_page('initial_data = arguments[0];', initial_data)
......
423 427
                '0.1.1': sample_mapping2
424 428
            }
425 429
        },
426
        'files': sample_files_by_hash
430
        'file': {
431
            'sha256': sample_files_by_sha256
432
        }
427 433
    }
428 434
    execute_in_page('returnval(save_items(arguments[0]));', sample_data)
429 435
    execute_in_page('returnval(set_setting("option22", "abc"));')

Also available in: Unified diff