Ejemplo n.º 1
0
    def test_unique_sku(self):
        product_a = Product()
        product_a.name = 'a'
        product_a.sku = 'a'
        product_a.save()

        product_b = Product()
        product_b.name = 'a'
        product_b.sku = 'a'
        with self.assertRaises(IntegrityError):
            with transaction.atomic():
                product_b.save()
Ejemplo n.º 2
0
    def test_unique_slug(self):
        product_a = Product()
        product_a.name = "a"
        product_a.save()

        product_b = Product()
        product_b.name = product_a.name
        product_b.site = Site.objects.get(pk=2)
        product_b.save()

        product_c = Product()
        product_c.name = product_a.name
        product_c.save()

        self.assertNotEqual(product_a.slug, product_c.slug)
        self.assertEqual(product_a.slug, product_b.slug)
	def handle_noargs(self, *args, **kwargs):
		print "fetching product list"
		f = urllib2.urlopen(URL)
		products = json.loads(f.read())
		
		for (i, product_data) in enumerate(products):
			try:
				product = Product.objects.get(fairtrade_org_uk_key=product_data['key'])
			except Product.DoesNotExist:
				product = Product(fairtrade_org_uk_key=product_data['key'])
			
			if product_data['manufacturer'] == 'N/A':
				manufacturer = None
			else:
				manufacturer, created = BusinessEntity.objects.get_or_create(name=product_data['manufacturer'])
			
			category = None
			# walk down category tree
			for category_name in product_data['category'].split('/'):
				if not category:
					try:
						category = ProductCategory.get_root_nodes().get(name=category_name)
					except ProductCategory.DoesNotExist:
						category = ProductCategory.add_root(name=category_name)
				else:
					try:
						category = category.get_children().get(name=category_name)
					except ProductCategory.DoesNotExist:
						category = category.add_child(name=category_name)
			
			product.name = product_data['name']
			product.manufacturer = manufacturer
			product.category = category
			if product_data['description']:
				product.description = product_data['description']
			if product_data['url']:
				product.url = product_data['url']
			product.save()
			
			if i % 100 == 0:
				print "imported %d products" % i