Exemplo n.º 1
0
    def __call__(self, restore_state):
        restore_user = restore_state.restore_user

        data_fn = lambda: Program.by_domain(restore_user.domain)
        return simple_fixture_generator(restore_user, self.id, "program",
                                        PROGRAM_FIELDS, data_fn,
                                        restore_state.last_sync_log)
Exemplo n.º 2
0
    def _get_fixture_items(self, restore_state, indexed):
        restore_user = restore_state.restore_user

        project = restore_user.project
        if not project or not project.commtrack_enabled:
            return []

        if not self._should_sync(restore_state):
            return []

        data = list(
            SQLProduct.active_objects
            .filter(domain=restore_user.domain)
            .order_by('code')
            .all()
        )

        fixture_nodes = simple_fixture_generator(
            restore_user, self.id, "product", PRODUCT_FIELDS,
            data
        )
        if not fixture_nodes:
            return []

        if indexed:
            fixture_nodes[0].attrib['indexed'] = 'true'
        return fixture_nodes
Exemplo n.º 3
0
 def test_product_decimal_value(self):
     products = [
         Product(
             _id="1",
             domain="test-domain",
             name="Foo",
             code_="foo",
             cost=10,
         ),
         Product(
             _id="2",
             domain="test-domain",
             name="Bar",
             code_="bar",
             cost=9.99,
         ),
         Product(
             _id="3",
             domain="test-domain",
             name="Baz",
             code_="baz",
             cost=10.0,
         ),
     ]
     fixtures = simple_fixture_generator(
         restore_user=MockUser(user_id="123456"),
         id="7890ab",
         name="test-fixture",
         fields=("name", "code", "cost"),
         data=products,
     )
     xml = tostring(fixtures[0])
     self.assertEqual(xml, self.get_expected_xml())
Exemplo n.º 4
0
    def __call__(self, restore_state):
        restore_user = restore_state.restore_user

        data_fn = lambda: Program.by_domain(restore_user.domain)
        return simple_fixture_generator(
            restore_user, self.id, "program",
            PROGRAM_FIELDS, data_fn, restore_state.last_sync_log
        )
Exemplo n.º 5
0
    def _get_fixture_items(self, restore_state):
        restore_user = restore_state.restore_user

        def get_programs():
            return Program.by_domain(restore_user.domain)

        return simple_fixture_generator(
            restore_user, self.id, "program",
            PROGRAM_FIELDS, get_programs, restore_state.last_sync_log, GLOBAL_USER_ID
        )
Exemplo n.º 6
0
    def __call__(self, restore_state):
        restore_user = restore_state.restore_user

        def get_products():
            return sorted(Product.by_domain(restore_user.domain),
                          key=lambda product: product.code)

        return simple_fixture_generator(restore_user, self.id, "product",
                                        PRODUCT_FIELDS, get_products,
                                        restore_state.last_sync_log)
Exemplo n.º 7
0
    def __call__(self, restore_user, version, last_sync=None, app=None):
        assert isinstance(restore_user, OTARestoreUser)

        def get_products():
            return sorted(Product.by_domain(restore_user.domain),
                          key=lambda product: product.code)

        return simple_fixture_generator(restore_user, self.id, "product",
                                        PRODUCT_FIELDS, get_products,
                                        last_sync)
Exemplo n.º 8
0
 def test_sqlproduct_decimal_value(self):
     with get_sql_products() as products:
         fixtures = simple_fixture_generator(
             restore_user=MockUser(user_id="123456"),
             id="7890ab",
             name="test-fixture",
             fields=("name", "code", "cost"),
             data=products,
         )
     xml = tostring(fixtures[0])
     self.assertEqual(xml, self.get_expected_xml())
Exemplo n.º 9
0
    def __call__(self, restore_user, version, last_sync=None, app=None):
        assert isinstance(restore_user, OTARestoreUser)

        def get_products():
            return sorted(
                Product.by_domain(restore_user.domain),
                key=lambda product: product.code
            )

        return simple_fixture_generator(
            restore_user, self.id, "product", PRODUCT_FIELDS, get_products, last_sync
        )
Exemplo n.º 10
0
    def _get_fixture_items(self, restore_state):
        restore_user = restore_state.restore_user

        project = restore_user.project
        if not project or not project.commtrack_enabled:
            return []

        data = Program.by_domain(restore_user.domain)

        if not self._should_sync(data, restore_state.last_sync_log):
            return []

        return simple_fixture_generator(restore_user, self.id, "program",
                                        PROGRAM_FIELDS, data)
Exemplo n.º 11
0
    def _get_fixture_items(self, restore_state, indexed):
        restore_user = restore_state.restore_user

        def get_products():
            return sorted(Product.by_domain(restore_user.domain),
                          key=lambda product: product.code)

        fixture_nodes = simple_fixture_generator(restore_user, self.id,
                                                 "product", PRODUCT_FIELDS,
                                                 get_products,
                                                 restore_state.last_sync_log,
                                                 GLOBAL_USER_ID)
        if not fixture_nodes:
            return []

        if indexed:
            fixture_nodes[0].attrib['indexed'] = 'true'
        return fixture_nodes
Exemplo n.º 12
0
    def __call__(self, restore_state):
        restore_user = restore_state.restore_user

        def get_products():
            return sorted(
                Product.by_domain(restore_user.domain),
                key=lambda product: product.code
            )

        fixture_nodes = simple_fixture_generator(
            restore_user, self.id, "product", PRODUCT_FIELDS, get_products, restore_state.last_sync_log
        )
        if not fixture_nodes:
            return []

        if (restore_state.params.openrosa_version
                and restore_state.params.openrosa_version < LooseVersion(OPENROSA_VERSION_MAP['INDEXED_PRODUCTS_FIXTURE'])):
            # Don't include index schema when openrosa version is specified and below 2.1
            return fixture_nodes
        else:
            schema_node = get_index_schema_node(self.id, ['@id', 'code', 'program_id', 'category'])
            fixture_nodes[0].attrib['indexed'] = 'true'
            return [schema_node] + fixture_nodes
Exemplo n.º 13
0
    def __call__(self, restore_state):
        restore_user = restore_state.restore_user

        def get_products():
            return sorted(Product.by_domain(restore_user.domain),
                          key=lambda product: product.code)

        fixture_nodes = simple_fixture_generator(restore_user, self.id,
                                                 "product", PRODUCT_FIELDS,
                                                 get_products,
                                                 restore_state.last_sync_log)
        if not fixture_nodes:
            return []

        if (restore_state.params.openrosa_version
                and restore_state.params.openrosa_version <
                OPENROSA_VERSION_MAP['INDEXED_PRODUCTS_FIXTURE']):
            # Don't include index schema when openrosa version is specified and below 2.1
            return fixture_nodes
        else:
            schema_node = get_index_schema_node(
                self.id, ['@id', 'code', 'program_id', 'category'])
            fixture_nodes[0].attrib['indexed'] = 'true'
            return [schema_node] + fixture_nodes
Exemplo n.º 14
0
    def __call__(self, restore_user, version, last_sync=None, app=None):
        assert isinstance(restore_user, OTARestoreUser)

        data_fn = lambda: Program.by_domain(restore_user.domain)
        return simple_fixture_generator(restore_user, self.id, "program",
                                         PROGRAM_FIELDS, data_fn, last_sync)