| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | from django.test import TestCase
from oscar.apps.dashboard.ranges import forms
from oscar.test.helpers import create_product
from oscar.apps.offer.models import Range
class RangeProductFormTests(TestCase):
    def setUp(self):
        self.range = Range.objects.create(name='dummy')
    def tearDown(self):
        Range.objects.all().delete()
    def submit_form(self, data):
        return forms.RangeProductForm(self.range, data)
    def test_either_query_or_file_must_be_submitted(self):
        form = self.submit_form({'query': ''})
        self.assertFalse(form.is_valid())
    def test_non_match_becomes_error(self):
        form = self.submit_form({'query': '123123'})
        self.assertFalse(form.is_valid())
    def test_matching_query_is_valid(self):
        create_product(partner_sku='123123')
        form = self.submit_form({'query': '123123'})
        self.assertTrue(form.is_valid())
    def test_passing_form_return_product_list(self):
        product = create_product(partner_sku='123123')
        form = self.submit_form({'query': '123123'})
        form.is_valid()
        self.assertEqual(1, len(form.get_products()))
        self.assertEqual(product.id, form.get_products()[0].id)
    def test_missing_skus_are_available(self):
        create_product(partner_sku='123123')
        form = self.submit_form({'query': '123123, 123xxx'})
        form.is_valid()
        self.assertEqual(1, len(form.get_missing_skus()))
        self.assertTrue('123xxx' in form.get_missing_skus())
    def test_only_dupes_is_invalid(self):
        product = create_product(partner_sku='123123')
        self.range.included_products.add(product)
        form = self.submit_form({'query': '123123'})
        self.assertFalse(form.is_valid())
    def test_dupe_skus_are_available(self):
        product = create_product(partner_sku='123123')
        create_product(partner_sku='123124')
        self.range.included_products.add(product)
        form = self.submit_form({'query': '123123, 123124'})
        self.assertTrue(form.is_valid())
        self.assertTrue('123123' in form.get_duplicate_skus())
 |