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'), }
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) == ''