1 # This file is part of Indico.
2 # Copyright (C) 2002 - 2015 European Organization for Nuclear Research (CERN).
4 # Indico is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License as
6 # published by the Free Software Foundation; either version 3 of the
7 # License, or (at your option) any later version.
9 # Indico is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with Indico; if not, see <http://www.gnu.org/licenses/>.
19 from indico
.util
.fs
import secure_filename
22 @pytest.mark
.parametrize(('filename', 'expected'), (
25 ('foo.txt', 'foo.txt'),
27 ('../../../etc/passwd', 'etc_passwd'),
28 (u
'm\xf6p.txt', 'moep.txt'),
29 (u
'm\xf6p.txt'.encode('utf-8'), 'moep.txt'),
30 (u
'/m\xf6p.txt', 'moep.txt'),
31 (r
'spacy \filename', 'spacy_filename'),
33 def test_secure_filename(filename
, expected
):
34 assert secure_filename(filename
, 'fallback') == expected