示例#1
0
def test_classification():
    meta = Issue._meta
    gf = meta.get_field
    regular_fields = {
        'number': gf('number'),
        'title': gf('title'),
        'no_title': gf('no_title'),
        'volume': gf('volume'),
        'no_volume': gf('no_volume'),
        'volume_not_printed': gf('volume_not_printed'),
        'display_volume_with_number': gf('display_volume_with_number'),
        'variant_of': gf('variant_of'),
        'variant_name': gf('variant_name'),
        'isbn': gf('isbn'),
        'no_isbn': gf('no_isbn'),
        'barcode': gf('barcode'),
        'no_barcode': gf('no_barcode'),
        'rating': gf('rating'),
        'no_rating': gf('no_rating'),
        'publication_date': gf('publication_date'),
        'key_date': gf('key_date'),
        'on_sale_date_uncertain': gf('on_sale_date_uncertain'),
        'indicia_frequency': gf('indicia_frequency'),
        'no_indicia_frequency': gf('no_indicia_frequency'),
        'price': gf('price'),
        'page_count': gf('page_count'),
        'page_count_uncertain': gf('page_count_uncertain'),
        'editing': gf('editing'),
        'no_editing': gf('no_editing'),
        'notes': gf('notes'),
        'keywords': gf('keywords'),
        'series': gf('series'),
        'indicia_publisher': gf('indicia_publisher'),
        'indicia_pub_not_printed': gf('indicia_pub_not_printed'),
        'brand': gf('brand'),
        'no_brand': gf('no_brand'),
        'no_indicia_printer': gf('no_indicia_printer'),
        'indicia_printer': gf('indicia_printer'),
    }

    irregular_fields = {
        'awards': gf('awards'),
        'valid_isbn': gf('valid_isbn'),
        'on_sale_date': gf('on_sale_date'),
        'sort_code': gf('sort_code'),
        'is_indexed': gf('is_indexed'),
    }

    assert IssueRevision._get_regular_fields() == regular_fields
    assert IssueRevision._get_irregular_fields() == irregular_fields

    single_value_fields = regular_fields.copy()
    del single_value_fields['keywords']
    del single_value_fields['indicia_printer']
    assert IssueRevision._get_single_value_fields() == single_value_fields

    assert IssueRevision._get_multi_value_fields() == {
        'indicia_printer': gf('indicia_printer'),
    }
示例#2
0
def test_fork_variant_for_cover_no_reserve(any_added_issue,
                                           any_editing_changeset,
                                           any_added_indicia_printer):
    # Make it a wraparound to test cover sequence page count logic.
    cover_rev = CoverRevision(changeset=any_editing_changeset,
                              is_wraparound=2)
    issue_rev, story_rev = IssueRevision.fork_variant(
        any_added_issue,
        any_editing_changeset,
        variant_name='any variant name',
        variant_cover_revision=cover_rev)

    for name in IssueRevision._get_regular_fields():
        if name == 'variant_of':
            assert issue_rev.variant_of == any_added_issue
        elif name == 'variant_name':
            assert issue_rev.variant_name == 'any variant name'
        elif name == 'on_sale_date':
            assert issue_rev.year_on_sale is None
            assert issue_rev.month_on_sale is None
            assert issue_rev.day_on_sale is None
        elif name == 'indicia_printer':
            indicia_printers = list(issue_rev.indicia_printer.order_by('id'))
            assert indicia_printers == [any_added_indicia_printer]
        elif name in EXCLUDED_FORK_FIELDS:
            assert getattr(issue_rev, name) == EXCLUDED_FORK_FIELDS[name]
        else:
            assert getattr(issue_rev, name) == getattr(any_added_issue, name)

    assert issue_rev.add_after == any_added_issue
    assert issue_rev.reservation_requested is False

    assert story_rev.changeset == issue_rev.changeset
    assert story_rev.issue is None
    assert story_rev.sequence_number == 0
    assert story_rev.page_count == 2
    assert story_rev.type.name == 'cover'
    assert story_rev.script == ''
    assert story_rev.no_script is True
    assert story_rev.inks == '?'
    assert story_rev.no_inks is False
    assert story_rev.colors == '?'
    assert story_rev.no_colors is False
    assert story_rev.letters == ''
    assert story_rev.no_letters is True
    assert story_rev.editing == ''
    assert story_rev.no_editing is True

    for name in ('pencils', 'inks', 'colors'):
        assert getattr(story_rev, name) == '?'
    for name in ('script', 'letters', 'editing'):
        assert getattr(story_rev, name) == ''
def test_fork_variant_for_cover_no_reserve(any_added_issue,
                                           any_editing_changeset):
    # Make it a wraparound to test cover sequence page count logic.
    cover_rev = CoverRevision(changeset=any_editing_changeset,
                              is_wraparound=2)
    issue_rev, story_rev = IssueRevision.fork_variant(
        any_added_issue,
        any_editing_changeset,
        variant_name='any variant name',
        variant_cover_revision=cover_rev)

    for name in IssueRevision._get_regular_fields():
        if name == 'variant_of':
            assert issue_rev.variant_of == any_added_issue
        elif name == 'variant_name':
            assert issue_rev.variant_name == 'any variant name'
        elif name == 'on_sale_date':
            assert issue_rev.year_on_sale is None
            assert issue_rev.month_on_sale is None
            assert issue_rev.day_on_sale is None
        elif name in EXCLUDED_FORK_FIELDS:
            assert getattr(issue_rev, name) == EXCLUDED_FORK_FIELDS[name]
        else:
            assert getattr(issue_rev, name) == getattr(any_added_issue, name)

    assert issue_rev.add_after == any_added_issue
    assert issue_rev.reservation_requested is False

    assert story_rev.changeset == issue_rev.changeset
    assert story_rev.issue is None
    assert story_rev.sequence_number == 0
    assert story_rev.page_count == 2
    assert story_rev.type.name == 'cover'
    assert story_rev.script == ''
    assert story_rev.no_script is True
    assert story_rev.inks == '?'
    assert story_rev.no_inks is False
    assert story_rev.colors == '?'
    assert story_rev.no_colors is False
    assert story_rev.letters == ''
    assert story_rev.no_letters is True
    assert story_rev.editing == ''
    assert story_rev.no_editing is True

    for name in ('pencils', 'inks', 'colors'):
        assert getattr(story_rev, name) == '?'
    for name in ('script', 'letters', 'editing'):
        assert getattr(story_rev, name) == ''