Пример #1
0
    def test_archive(self):
        bootstrap_products(self.domain)
        products = sorted(Product.by_domain(self.domain), key=lambda p: p._id)
        original_list = Product.by_domain(self.domain, wrap=False)

        products[0].archive()

        new_list = Product.by_domain(self.domain, wrap=False)

        self.assertTrue(
            products[0]._id not in [p['_id'] for p in new_list],
            "Archived product still returned by Product.by_domain()"
        )

        self.assertEqual(
            len(new_list),
            len(original_list) - 1
        )

        self.assertEqual(
            len(Product.by_domain(self.domain, wrap=False, include_archived=True)),
            len(original_list)
        )

        self.assertEqual(
            SQLProduct.objects.filter(domain=self.domain, is_archived=True).count(),
            1
        )

        products[0].unarchive()

        self.assertEqual(
            len(original_list),
            len(Product.by_domain(self.domain, wrap=False))
        )
Пример #2
0
    def test_archive(self):
        bootstrap_products(self.domain)
        products = sorted(Product.by_domain(self.domain), key=lambda p: p._id)
        original_list = Product.by_domain(self.domain, wrap=False)

        products[0].archive()

        new_list = Product.by_domain(self.domain, wrap=False)

        self.assertTrue(
            products[0]._id not in [p['_id'] for p in new_list],
            "Archived product still returned by Product.by_domain()")

        self.assertEqual(len(new_list), len(original_list) - 1)

        self.assertEqual(
            len(
                Product.by_domain(self.domain,
                                  wrap=False,
                                  include_archived=True)), len(original_list))

        self.assertEqual(
            SQLProduct.objects.filter(domain=self.domain,
                                      is_archived=True).count(), 1)

        products[0].unarchive()

        self.assertEqual(len(original_list),
                         len(Product.by_domain(self.domain, wrap=False)))
Пример #3
0
    def setUp(self):
        super(XMLTest, self).setUp()
        self.domain = util.bootstrap_domain(util.TEST_DOMAIN)
        util.bootstrap_location_types(self.domain.name)
        util.bootstrap_products(self.domain.name)
        self.products = sorted(Product.by_domain(self.domain.name),
                               key=lambda p: p._id)
        self.ct_settings = SQLCommtrackConfig.for_domain(self.domain.name)
        self.ct_settings.sqlconsumptionconfig = SQLConsumptionConfig(
            min_transactions=0,
            min_window=0,
            optimal_window=60,
        )
        self.ct_settings.save()
        self.ct_settings.sqlconsumptionconfig.commtrack_settings = self.ct_settings
        self.ct_settings.sqlconsumptionconfig.save()
        self.domain = Domain.get(self.domain._id)

        self.loc = make_loc('loc1')
        self.sp = self.loc.linked_supply_point()
        self.users = [
            util.bootstrap_user(self, **user_def)
            for user_def in self.user_definitions
        ]
        self.user = self.users[0]
Пример #4
0
    def test_programs(self):
        self.domain = bootstrap_domain(TEST_DOMAIN)
        self.addCleanup(self.domain.delete)
        bootstrap_products(self.domain.name)
        self.products = sorted(Product.by_domain(self.domain.name), key=lambda p: p._id)
        self.default_program = Program.by_domain(self.domain.name, wrap=True).one()
        self.new_program = make_program(
            self.domain.name,
            'new program',
            'newprogram'
        )
        self.assertTrue(self.default_program.default)
        self.assertFalse(self.new_program.default)

        with self.assertRaises(Exception) as context:
            self.default_program.delete()

        self.assertEqual(six.text_type(context.exception), 'You cannot delete the default program')

        # 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, self.default_program.get_products_count())
        self.assertEqual(1, self.new_program.get_products_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, self.default_program.get_products_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
        )
Пример #5
0
 def setUpClass(cls):
     cls.endpoint = MockEndpoint('http://test-api.com/', 'dummy', 'dummy')
     cls.api_object = EWSApi(TEST_DOMAIN, cls.endpoint)
     cls.datapath = os.path.join(os.path.dirname(__file__), 'data')
     initial_bootstrap(TEST_DOMAIN)
     bootstrap_products(TEST_DOMAIN)
     cls.api_object.prepare_commtrack_config()
     with open(os.path.join(cls.datapath, 'sample_products.json')) as f:
         for p in json.loads(f.read()):
             cls.api_object.product_sync(Product(p))
 def setUpClass(cls):
     super(SMSTests, cls).setUpClass()
     cls.backend, cls.backend_mapping = setup_default_sms_test_backend()
     cls.domain = util.bootstrap_domain(util.TEST_DOMAIN)
     util.bootstrap_location_types(cls.domain.name)
     util.bootstrap_products(cls.domain.name)
     cls.products = sorted(Product.by_domain(cls.domain.name), key=lambda p: p._id)
     cls.loc = util.make_loc('loc1')
     cls.sp = cls.loc.linked_supply_point()
     cls.users = [util.bootstrap_user(cls, **user_def) for user_def in cls.user_definitions]
Пример #7
0
 def setUpClass(cls):
     super(SMSTests, cls).setUpClass()
     cls.backend, cls.backend_mapping = setup_default_sms_test_backend()
     cls.domain = util.bootstrap_domain(util.TEST_DOMAIN)
     util.bootstrap_location_types(cls.domain.name)
     util.bootstrap_products(cls.domain.name)
     cls.products = sorted(Product.by_domain(cls.domain.name), key=lambda p: p._id)
     cls.loc = util.make_loc('loc1')
     cls.sp = cls.loc.linked_supply_point()
     cls.users = [util.bootstrap_user(cls, **user_def) for user_def in cls.user_definitions]
Пример #8
0
 def setUpClass(cls):
     cls.endpoint = MockEndpoint('http://test-api.com/', 'dummy', 'dummy')
     cls.api_object = EWSApi(TEST_DOMAIN, cls.endpoint)
     cls.datapath = os.path.join(os.path.dirname(__file__), 'data')
     initial_bootstrap(TEST_DOMAIN)
     bootstrap_products(TEST_DOMAIN)
     cls.api_object.prepare_commtrack_config()
     with open(os.path.join(cls.datapath, 'sample_products.json')) as f:
         for p in json.loads(f.read()):
             cls.api_object.product_sync(Product(p))
Пример #9
0
    def setUpClass(cls):
        super(StockStateTest, cls).setUpClass()
        cls.domain_obj = util.bootstrap_domain(cls.domain)
        util.bootstrap_location_types(cls.domain)
        util.bootstrap_products(cls.domain)
        cls.ct_settings = CommtrackConfig.for_domain(cls.domain)
        cls.ct_settings.use_auto_consumption = True
        cls.ct_settings.consumption_config = ConsumptionConfig(
            min_transactions=0,
            min_window=0,
            optimal_window=60,
            min_periods=0,
        )
        cls.ct_settings.save()

        cls.loc = util.make_loc('loc1', domain=cls.domain)
        cls.sp = cls.loc.linked_supply_point()
        cls.products = sorted(Product.by_domain(cls.domain), key=lambda p: p._id)
Пример #10
0
    def setUp(self):
        super(XMLTest, self).setUp()
        self.domain = util.bootstrap_domain(util.TEST_DOMAIN)
        util.bootstrap_location_types(self.domain.name)
        util.bootstrap_products(self.domain.name)
        self.products = sorted(Product.by_domain(self.domain.name), key=lambda p: p._id)
        self.ct_settings = CommtrackConfig.for_domain(self.domain.name)
        self.ct_settings.consumption_config = ConsumptionConfig(
            min_transactions=0,
            min_window=0,
            optimal_window=60,
            min_periods=0,
        )
        self.ct_settings.save()
        self.domain = Domain.get(self.domain._id)

        self.loc = make_loc('loc1')
        self.sp = self.loc.linked_supply_point()
        self.users = [util.bootstrap_user(self, **user_def) for user_def in self.user_definitions]
        self.user = self.users[0]
Пример #11
0
    def setUpClass(cls):
        super(StockStateTest, cls).setUpClass()
        cls.domain_obj = util.bootstrap_domain(cls.domain)
        util.bootstrap_location_types(cls.domain)
        util.bootstrap_products(cls.domain)
        cls.ct_settings = SQLCommtrackConfig.for_domain(cls.domain)
        cls.ct_settings.use_auto_consumption = True
        cls.ct_settings.sqlconsumptionconfig = SQLConsumptionConfig(
            min_transactions=0,
            min_window=0,
            optimal_window=60,
        )
        cls.ct_settings.save()
        cls.ct_settings.sqlconsumptionconfig.commtrack_settings = cls.ct_settings
        cls.ct_settings.sqlconsumptionconfig.save()

        cls.loc = util.make_loc('loc1', domain=cls.domain)
        cls.sp = cls.loc.linked_supply_point()
        cls.products = sorted(Product.by_domain(cls.domain),
                              key=lambda p: p._id)

        cls.process_ledger_changes = process_pillow_changes(
            'LedgerToElasticsearchPillow')
Пример #12
0
 def setUpClass(cls):
     super(FixtureTest, cls).setUpClass()
     cls.domain_obj = util.bootstrap_domain(cls.domain)
     util.bootstrap_location_types(cls.domain)
     util.bootstrap_products(cls.domain)
     cls.user = create_restore_user(cls.domain)
Пример #13
0
 def setUpClass(cls):
     super(FixtureTest, cls).setUpClass()
     cls.domain_obj = util.bootstrap_domain(cls.domain)
     util.bootstrap_location_types(cls.domain)
     util.bootstrap_products(cls.domain)
     cls.user = create_restore_user(cls.domain)