def test_source_google_drive_file_id():
    expected_url = ('https://drive.google.com/uc'
                    '?id=1olKc6TUJ1kPJa7cKWVp7dNZFwHb_0k8Z')
    image_url = '1olKc6TUJ1kPJa7cKWVp7dNZFwHb_0k8Z'
    image = Image('Google Drive', image_url)

    assert image.image_url == expected_url
def test_source_google_drive_share_link():
    expected_url = ('https://drive.google.com/uc'
                    '?id=1olKc6TUJ1kPJa7cKWVp7dNZFwHb_0k8Z')
    image_url = ('https://drive.google.com/file/d/'
                 '1olKc6TUJ1kPJa7cKWVp7dNZFwHb_0k8Z/view?usp=sharing')
    image = Image('Google Drive', image_url)

    assert image.image_url == expected_url
    def _parse_header(self, sheet, tier_name):
        header_entry = [cell.value for cell in sheet.row(1)[1:4]]

        if header_entry[0] == 'yes':
            if all(header_entry):
                header = Image(*header_entry[1:])
                return header

            raise exceptions.HeaderIncompleteError(
                f"Incomplete header entry in sheet '{tier_name}'.")

        return None
Example #4
0
def test_generate_bbcode():
    bbcg = BBCodeGenerator(
        {'entries_per_row': 2},
        {
            'tier S': {
                'header':
                None,
                'entries': [
                    Entry('https://myanimelist.net/character/370/Ayame_Souma',
                          'direct URL', 'example1.com'),
                    Entry('https://myanimelist.net/character/2455/Orochimaru',
                          'direct URL', 'example2.com'),
                ]
            },
            'tier A': {
                'header':
                Image('direct URL', 'example.com'),
                'entries': [
                    Entry('https://myanimelist.net/character/91959/Sakamoto',
                          'direct URL', 'example3.com'),
                    Entry('https://myanimelist.net/character/45627/Levi',
                          'direct URL', 'example4.com'),
                    Entry('https://myanimelist.net/character/164481/Mahito',
                          'direct URL', 'example5.com'),
                ]
            },
        },
    )
    expected_bbcode = (
        '[url=https://myanimelist.net/character/370/Ayame_Souma]'
        '[img]example1.com[/img][/url]'
        '[url=https://myanimelist.net/character/2455/Orochimaru]'
        '[img]example2.com[/img][/url]\n'
        '[img]example.com[/img]\n'
        '[url=https://myanimelist.net/character/91959/Sakamoto]'
        '[img]example3.com[/img][/url]'
        '[url=https://myanimelist.net/character/45627/Levi]'
        '[img]example4.com[/img][/url]\n'
        '[url=https://myanimelist.net/character/164481/Mahito]'
        '[img]example5.com[/img][/url]\n')

    bbcg.generate_bbcode()

    assert bbcg.bbcode == expected_bbcode
Example #5
0
def test_generate_html():
    bbcg = BBCodeGenerator(
        {'entries_per_row': 2},
        {
            'tier S': {
                'header':
                None,
                'entries': [
                    Entry('https://myanimelist.net/character/370/Ayame_Souma',
                          'direct URL', 'example1.com'),
                    Entry('https://myanimelist.net/character/2455/Orochimaru',
                          'direct URL', 'example2.com'),
                ]
            },
            'tier A': {
                'header':
                Image('direct URL', 'example.com'),
                'entries': [
                    Entry('https://myanimelist.net/character/91959/Sakamoto',
                          'direct URL', 'example3.com'),
                    Entry('https://myanimelist.net/character/45627/Levi',
                          'direct URL', 'example4.com'),
                    Entry('https://myanimelist.net/character/164481/Mahito',
                          'direct URL', 'example5.com'),
                ]
            },
        },
    )
    test_html_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                                  'test_preview.html')
    with open(test_html_file, 'r') as f:
        expected_html = f.read()

    bbcg.generate_bbcode()
    bbcg.generate_html()

    assert bbcg.html == expected_html
Example #6
0
import os

import pytest

from mal_tier_list_bbcode_gen.bbcodegenerator import BBCodeGenerator
from mal_tier_list_bbcode_gen.entry import Entry
from mal_tier_list_bbcode_gen.image import Image


@pytest.mark.parametrize(
    "header,expected_bbcode",
    [
        pytest.param(Image('direct URL', 'example.com'),
                     '[img]example.com[/img]\n',
                     id='header_exists'),
        pytest.param(None, '', id='header_is_none'),
    ],
)
def test_generate_bbcode_for_header(header, expected_bbcode):
    bbcg = BBCodeGenerator({}, {})
    bbcode = bbcg._generate_bbcode_for_header(header)

    assert bbcode == expected_bbcode


@pytest.mark.parametrize(
    "entries_per_row,no_entries,expected_ends",
    [
        pytest.param(0, 0, ['\n']),
        pytest.param(0, 1, ['\n']),
        pytest.param(1, 2, ['\n', '\n']),
def test_source_direct_url():
    image_url = 'example.com/test.png'
    image = Image('direct URL', image_url)

    assert image.image_url == image_url
def test_get_bbcode():
    image_url = 'example.com/test.png'
    expected_bbcode = f'[img]{image_url}[/img]'
    image = Image('direct URL', image_url)

    assert image.get_bbcode() == expected_bbcode
def test_source_not_valid():
    with pytest.raises(exceptions.InvalidImageSourceError,
                       match=r".*is not a valid image source.*"):
        Image('not valid', 'example.com/test.png')
def test_source_google_no_file_id():
    image_url = ('https://drive.google.com/file/d/view?usp=sharing')
    with pytest.raises(exceptions.GoogleDriveSourceError):
        Image('Google Drive', image_url)