Ejemplo n.º 1
0
    def test_get_file_content_headers(self):
        # === Initialization ===

        display_name = 'test123'
        extension = 'png'
        category = FileCategory.UPLOADS
        _hash = '123456789abcdefghiklmnopqrstuvwxyz'
        full_display_name = display_name + "." + extension

        expected_content_type = "image/png"
        expected_content_disposition = 'inline; filename="{}"'.format(
            full_display_name)

        _file = MagicMock(spec=dir(File))
        _file.id = 1
        _file.hash = _hash
        _file.category = category
        _file.display_name = display_name
        _file.extension = extension
        _file.full_display_name = full_display_name

        # === Service function call ===

        with patch.object(file_service, 'get_file_mimetype',
                          return_value=expected_content_type):
            headers = file_service.get_file_content_headers(_file)

        # === Assertions ===

        assert "Content-Type" in headers
        assert "Content-Disposition" in headers

        self.assertEqual(headers["Content-Type"], expected_content_type)
        self.assertEqual(headers["Content-Disposition"],
                         expected_content_disposition)
Ejemplo n.º 2
0
    def test_get_file_content_headers_no_display_name(self):
        # === Initialization ===

        display_name = None
        extension = 'png'
        category = FileCategory.ACTIVITY_PICTURE
        _hash = '123456789abcdefghiklmnopqrstuvwxyz'
        full_display_name = None

        expected_content_type = "image/png"

        _file = MagicMock(spec=dir(File))
        _file.id = 1
        _file.hash = _hash
        _file.category = category
        _file.display_name = display_name
        _file.extension = extension
        _file.full_display_name = full_display_name

        # === Service function call ===

        with patch.object(file_service, 'get_file_mimetype',
                          return_value=expected_content_type):
            headers = file_service.get_file_content_headers(_file)

        # === Assertions ===

        assert "Content-Type" in headers
        assert "Content-Disposition" not in headers

        self.assertEqual(headers["Content-Type"], expected_content_type)
Ejemplo n.º 3
0
def search_test_case(filenames, search,
                     expect_in_result,
                     expect_ordering=None):
    files = []

    for i, fn in enumerate(filenames):
        [display_name, extension] = fn.split('.')
        category = FileCategory.UPLOADS

        _hash = '123456789abcdefghiklmnopqrstuvwxyz'

        _file = MagicMock(spec=dir(File))
        _file.id = i + 1
        _file.hash = _hash
        _file.category = category
        _file.display_name = display_name
        _file.extension = extension

        _file.full_display_name = fn

        files.append(_file)

    file_repository_mock.find_all_files_by_category.return_value = files

    search_results = file_service.search_files_in_uploads(search)

    search_results_filenames = [r.full_display_name
                                for r in search_results]

    expect_in_result = set(expect_in_result)
    for fn in filenames:
        if fn in expect_in_result:
            assert fn in search_results_filenames, fn
        else:
            assert fn not in search_results_filenames, fn

    if expect_ordering:

        # Test if we have the same ordering in the result
        prev_index = -1

        for fn in expect_ordering:
            assert fn in expect_in_result, fn

            index = search_results_filenames.index(fn)
            assert index > prev_index, fn
            prev_index = index