def test_delete(self): # assign some product to the new program self.products[0].program_id = self.new_program._id self.products[0].save() # make sure start state is okay self.assertEqual( 2, len(Program.by_domain(self.domain.name)) ) self.assertEqual( 2, Product.by_program_id(self.domain.name, self.default_program._id).count() ) self.assertEqual( 1, Product.by_program_id(self.domain.name, self.new_program._id).count() ) self.assertEqual( self.new_program._id, self.products[0].program_id ) self.assertEqual( self.new_program._id, SQLProduct.objects.get(product_id=self.products[0]._id).program_id ) # stash the id before we delete new_program_id = self.new_program._id self.new_program.delete() with self.assertRaises(ResourceNotFound): Program.get(new_program_id) self.assertEqual( 1, len(Program.by_domain(self.domain.name)) ) self.assertEqual( 3, Product.by_program_id(self.domain.name, self.default_program._id).count() ) self.assertEqual( self.default_program._id, Product.get(self.products[0]._id).program_id ) self.assertEqual( self.default_program._id, SQLProduct.objects.get(product_id=self.products[0]._id).program_id )
def product_data(self): data = [] products = Product.by_program_id(domain=self.domain, prog_id=self.program_id, skip=self.skip(), limit=self.limit) for p in products: data.append(p._doc) return data
def product_data(self): def _scrub(product_doc): product_doc['code'] = product_doc.pop('code_') return product_doc data = [] products = Product.by_program_id(domain=self.domain, prog_id=self.program_id, skip=self.skip(), limit=self.limit) for p in products: data.append(_scrub(p._doc)) return data
def product_ids_filtered_by_program(domain, program): products = Product.by_program_id(domain, program, False) return [p['_id'] for p in products]
def total(self): return len(Product.by_program_id(self.domain, self.program_id))