예제 #1
0
def get_environment(session, model_name, backend_id):
    """ Create an environment to work with.  """
    backend_record = session.browse('icops.backend', backend_id)
    env = Environment(backend_record, session, model_name)
    lang_code = 'en_US'
    env.set_lang(code=lang_code)
    return env
예제 #2
0
def get_environment(session, model_name, backend_id):
    """ Create an environment to work with.  """
    backend_record = session.browse('magento.backend', backend_id)
    env = Environment(backend_record, session, model_name)
    lang = backend_record.default_lang_id
    lang_code = lang.code if lang else 'en_US'
    env.set_lang(code=lang_code)
    return env
예제 #3
0
def get_environment(session, model_name, backend_id):
    """ Create an environment to work with.  """
    backend_record = session.browse('highjump.backend', backend_id)
    env = Environment(backend_record, session, model_name)
    lang = backend_record.default_lang_id
    lang_code = lang.code if lang else 'en_US'
    env.set_lang(code=lang_code)
    return env
    def setUp(self):
        super(TestIntCSVParse, self).setUp()
        self.backend_record = Mock()
        self.session = ConnectorSession(self.cr, self.uid)
        self.model_name = 'ir.attachment.binding'
        self.backend_id = self.session.create(
            'file_import.backend', {
                'name': 'Test File Import',
                'ftp_host': 'localhost',
                'ftp_user': '******',
                'ftp_password': '******',
                'ftp_input_folder': 'to_openerp',
                'ftp_failed_folder': 'from_openerp',
            })

        self.env = Environment(self.backend_record, self.session,
                               self.model_name)

        self.policy = CSVParsePolicy(self.env)

        with open(expand_path('two_chunks.csv')) as input_file:
            file_content = input_file.read()

        self.document_id = self.session.create(
            'ir.attachment.binding', {
                'datas': base64.b64encode(file_content),
                'datas_fname': 'two_chunks.csv',
                'name': 'two_chunks.csv',
                'backend_id': self.backend_id,
            })

        self.document = self.session.browse('ir.attachment.binding',
                                            self.document_id)
예제 #5
0
def get_environment(session, backend_id):
    """ Create an environment to work with. """
    backend_record = session.browse('taktik.importer.backend.custom',
                                    backend_id)
    env = Environment(backend_record, session, 'taktik.importer.model.custom')
    with env.session.change_context(lang='en_US'):
        return env
예제 #6
0
def get_environment(session, model_name, backend_id):
    model = session.pool.get('prestashop.backend')
    backend_record = model.browse(session.cr,
                                  session.uid,
                                  backend_id,
                                  session.context)
    return Environment(backend_record, session, model_name)
예제 #7
0
    def test_play_onchange(self):
        """ Play the onchange ConnectorUnit on a sale order """
        product_model = self.registry('product.product')
        partner_model = self.registry('res.partner')
        shop_model = self.registry('sale.shop')
        tax_model = self.registry('account.tax')
        cr, uid = self.cr, self.uid

        backend_record = mock.Mock()
        env = Environment(backend_record, self.session, 'sale.order')

        partner_id = partner_model.create(cr, uid, {
            'name': 'seb',
            'zip': '69100',
            'city': 'Villeurbanne'
        })
        partner_invoice_id = partner_model.create(
            cr, uid, {
                'name': 'Guewen',
                'zip': '1015',
                'city': 'Lausanne',
                'type': 'invoice',
                'parent_id': partner_id
            })
        tax_id = tax_model.create(cr, uid, {'name': 'My Tax'})
        product_id = product_model.create(
            cr, uid, {
                'default_code': 'MyCode',
                'name': 'My Product',
                'weight': 15,
                'taxes_id': [(6, 0, [tax_id])]
            })
        shop_id = shop_model.create(cr, uid, {'name': 'My shop'})

        order_input = {
            'shop_id':
            shop_id,
            'name':
            'mag_10000001',
            'partner_id':
            partner_id,
            'order_line': [
                (0, 0, {
                    'product_id': product_id,
                    'price_unit': 20,
                    'name': 'My Real Name',
                    'product_uom_qty': 1,
                }),
            ]
        }

        onchange = SaleOrderOnChange(env)
        order = onchange.play(order_input, order_input['order_line'])

        self.assertEqual(order['partner_invoice_id'], partner_invoice_id)
        line = order['order_line'][0][2]
        self.assertEqual(line['name'], 'My Real Name')
        self.assertEqual(line['th_weight'], 15)
        self.assertEqual(line['tax_id'][0][2][0], tax_id)
예제 #8
0
    def _get_base_adapter(self, cr, uid, ids, context=None):
        """
        Get an adapter to test the backend connection
        """
        backend = self.browse(cr, uid, ids[0], context=context)
        session = ConnectorSession(cr, uid, context=context)
        environment = Environment(backend, session, None)

        return CmisAdapter(environment)
예제 #9
0
    def test_mapping_record_children_no_map_child(self):
        """ Map a record with children, using default MapChild """

        backend = Backend('backend', '42')

        @backend
        class LineMapper(ImportMapper):
            _model_name = 'res.currency.rate'
            direct = [('name', 'name')]

            @mapping
            def price(self, record):
                return {'rate': record['rate'] * 2}

            @only_create
            @mapping
            def discount(self, record):
                return {'test': .5}

        @backend
        class ObjectMapper(ImportMapper):
            _model_name = 'res.currency'

            direct = [('name', 'name')]

            children = [('lines', 'line_ids', 'res.currency.rate')]

        backend_record = mock.Mock()
        backend_record.get_backend.side_effect = lambda *a: backend
        env = Environment(backend_record, self.session, 'res.currency')

        record = {'name': 'SO1',
                  'lines': [{'name': '2013-11-07',
                             'rate': 10},
                            {'name': '2013-11-08',
                             'rate': 20}]}
        mapper = ObjectMapper(env)
        map_record = mapper.map_record(record)
        expected = {'name': 'SO1',
                    'line_ids': [(0, 0, {'name': '2013-11-07',
                                         'rate': 20}),
                                 (0, 0, {'name': '2013-11-08',
                                         'rate': 40})]
                    }
        self.assertEqual(map_record.values(), expected)
        expected = {'name': 'SO1',
                    'line_ids': [(0, 0, {'name': '2013-11-07',
                                         'rate': 20,
                                         'test': .5}),
                                 (0, 0, {'name': '2013-11-08',
                                         'rate': 40,
                                         'test': .5})]
                    }
        self.assertEqual(map_record.values(for_create=True), expected)
예제 #10
0
 def setUp(self):
     super(test_mapper_binding, self).setUp()
     self.session = ConnectorSession(self.cr, self.uid)
     self.Partner = self.registry('res.partner')
     self.backend = mock.Mock(wraps=Backend('x', version='y'),
                              name='backend')
     backend_record = mock.Mock()
     backend_record.get_backend.return_value = self.backend
     self.env = Environment(backend_record, self.session, 'res.partner')
     self.country_binder = mock.Mock(name='country_binder')
     self.country_binder.return_value = self.country_binder
     self.backend.get_class.return_value = self.country_binder
 def setUp(self):
     super(TestFTPGetPolicyWithOE, self).setUp()
     self.backend_record = Mock()
     self.session = ConnectorSession(self.cr, self.uid)
     self.model_name = 'ir.attachment.binding'
     self.backend_model = self.registry('file_import.backend')
     self.backend_id = self.backend_model.create(
         self.cr, self.uid, {
             'name': 'Test File Import',
             'ftp_host': 'localhost',
             'ftp_user': '******',
             'ftp_password': '******',
             'ftp_input_folder': 'to_openerp',
             'ftp_failed_folder': 'from_openerp',
         }, self.session.context)
     self.env = Environment(self.backend_record, self.session,
                            self.model_name)
     self.policy = FTPFileGetterPolicy(self.env)
예제 #12
0
    def setUp(self):
        super(TestDocumentParseState, self).setUp()
        self.backend_record = Mock()
        self.session = ConnectorSession(self.cr, self.uid)
        self.model_name = 'ir.attachment.binding'
        self.backend_id = self.session.create(
            'file_import.backend', {
                'name': 'Test File Import',
                'ftp_host': 'localhost',
                'ftp_user': '******',
                'ftp_password': '******',
                'ftp_input_folder': 'to_openerp',
                'ftp_failed_folder': 'from_openerp',
            })

        self.env = Environment(self.backend_record, self.session,
                               self.model_name)

        self.policy = CSVParsePolicy(self.env)
예제 #13
0
    def setUp(self):
        super(TestIntLoad, self).setUp()
        self.backend_record = Mock()
        self.session = ConnectorSession(self.cr, self.uid)
        self.model_name = 'ir.attachment.binding'
        self.backend_id = self.session.create(
            'file_import.backend',
            {
                'name': 'Test File Import',
                'ftp_host': 'localhost',
                'ftp_user': '******',
                'ftp_password': '******',
                'ftp_input_folder': 'to_openerp',
                'ftp_failed_folder': 'from_openerp',
            })

        self.env = Environment(
            self.backend_record,
            self.session,
            self.model_name
        )

        self.policy = MoveLoadPolicy(self.env)

        self.parsed_header = '["ref", "date", "period_id", "journal_id", "line_id/account_id", "line_id/partner_id", "line_id/name", "line_id/analytic_account_id", "line_id/debit", "line_id/credit", "line_id/tax_code_id"]'  # noqa

        self.parsed_good_chunk = '[["1728274", "2014-02-02", "02/2014", "Sales Journal - (test)", "X11001", "Bank Wealthy and sons", "Camptocamp", "", "37.8", "", ""], ["", "", "", "", "X1111", "Bank Wealthy and sons", "Camptocamp", "AA009", "", "31.5", ""], ["", "", "", "", "X2001", "Bank Wealthy and sons", "Camptocamp", "AA001", "", "3.83", ""], ["", "", "", "", "X2110", "Bank Wealthy and sons", "Camptocamp", "AA001", "3.83", "", ""], ["", "", "", "", "X1000", "Bank Wealthy and sons", "Camptocamp", "", "", "6.3", ""], ["", "", "", "", "X1000", "Bank Wealthy and sons", "Camptocamp", "", "", "-0", ""]]'  # noqa

        self.parsed_chunk_missing_journal = '[["1728274", "2014-02-02", "02/2014", "Sales Journal - (test)", "X11001", "Bank Wealthy and sons", "Camptocamp", "", "37.8", "", ""], ["", "", "", "", "X1111", "Bank Wealthy and sons", "Camptocamp", "AA009", "", "31.5", ""], ["", "", "", "", "X2001", "Bank Wealthy and sons", "Camptocamp", "AA001", "", "3.83", ""], ["", "", "", "", "X2110", "Bank Wealthy and sons", "Camptocamp", "AA001", "3.83", "", ""], ["", "", "", "", "X1000", "Bank Wealthy and sons", "Camptocamp", "", "", "-6.3", ""], ["", "", "", "", "X1000", "Bank Wealthy and sons", "Camptocamp", "", "", "-0", ""]]'  # noqa

        with open(expand_path('two_chunks.csv')) as input_file:
            file_content = input_file.read()

        self.document_id = self.session.create(
            'ir.attachment.binding', {
                'datas': base64.b64encode(file_content),
                'datas_fname': 'two_chunks.csv',
                'name': 'two_chunks.csv',
                'backend_id': self.backend_id,
                'prepared_header': self.parsed_header,
            })
예제 #14
0
def get_environment(session, model_name, backend_id):
    """ Create an environment to work with. """
    backend_record = session.browse('civicrm.backend', backend_id)
    env = Environment(backend_record, session, model_name)
    env.set_lang(code='nl_NL')
    return env
예제 #15
0
def get_environment(session, model_name, backend_id):
    """ Create an environment to work with.  """
    backend_record = session.browse('bots.backend', backend_id)
    env = Environment(backend_record, session, model_name)
    return env
예제 #16
0
def get_environment(session, backend_id):
    """ Create an environment to work with. """
    backend_record = session.browse('taktik.importer.backend', backend_id)
    env = Environment(backend_record, session, 'taktik.importer.model')
    env.set_lang(code='en_US')
    return env
예제 #17
0
def get_environment(session, model_name, backend_id):
    """ Create an environment to work with. """
    backend_record = session.browse('civicrm.backend', backend_id)
    env = Environment(backend_record, session, model_name)
    env.set_lang(code='nl_NL')
    return env
예제 #18
0
    def test_play_onchange(self):
        """ Play the onchange ConnectorUnit on a sale order """
        product_model = self.env['product.product']
        partner_model = self.env['res.partner']
        tax_model = self.env['account.tax']
        sale_model = self.env['sale.order']
        sale_line_model = self.env['sale.order.line']
        payment_method_model = self.env['payment.method']

        backend_record = mock.Mock()
        env = Environment(backend_record, self.session, 'sale.order')

        partner = partner_model.create({
            'name': 'seb',
            'zip': '69100',
            'city': 'Villeurbanne'
        })
        partner_invoice = partner_model.create({
            'name': 'Guewen',
            'zip': '1015',
            'city': 'Lausanne',
            'type': 'invoice',
            'parent_id': partner.id
        })
        tax = tax_model.create({'name': 'My Tax'})
        product = product_model.create({
            'default_code': 'MyCode',
            'name': 'My Product',
            'weight': 15,
            'taxes_id': [(6, 0, [tax.id])]
        })
        payment_term = self.env.ref('account.account_payment_term_advance')
        payment_method = payment_method_model.create({
            'name':
            'Cash',
            'payment_term_id':
            payment_term.id,
        })

        order_vals = {
            'name':
            'mag_10000001',
            'partner_id':
            partner.id,
            'payment_method_id':
            payment_method.id,
            'order_line': [
                (0, 0, {
                    'product_id': product.id,
                    'price_unit': 20,
                    'name': 'My Real Name',
                    'product_uom_qty': 1,
                    'sequence': 1,
                }),
            ]
        }
        order = sale_model.new(order_vals)

        extra_lines = sale_line_model.new({
            'product_id': product.id,
            'price_unit': 10,
            'name': 'Line 2',
            'product_uom_qty': 2,
            'sequence': 2,
        })

        onchange = SaleOrderOnChange(env)
        order = onchange.play(order, order_lines=extra_lines)

        self.assertEqual(order.partner_invoice_id, partner_invoice)
        self.assertEqual(order.payment_term, payment_term)
        self.assertEqual(len(order.order_line), 2)
        for line in order.order_line:
            if line.sequence == 1:
                self.assertEqual(line.name, 'My Real Name')
                self.assertEqual(line.th_weight, 15)
                self.assertEqual(line.tax_id, tax)
            elif line.sequence == 2:
                self.assertEqual(line.name, 'Line 2')
                self.assertEqual(line.th_weight, 30)
                self.assertEqual(line.tax_id, tax)
            else:
                raise AssertionError('Unexpected sequence')
예제 #19
0
    def test_play_onchange(self):
        """ Play the onchange ConnectorUnit on a sales order """
        product_model = self.env['product.product']
        partner_model = self.env['res.partner']
        tax_model = self.env['account.tax']
        payment_method_model = self.env['payment.method']

        backend_record = mock.Mock()
        env = Environment(backend_record, self.session, 'sale.order')

        partner = partner_model.create({
            'name': 'seb',
            'zip': '69100',
            'city': 'Villeurbanne'
        })
        partner_invoice = partner_model.create({
            'name': 'Guewen',
            'zip': '1015',
            'city': 'Lausanne',
            'type': 'invoice',
            'parent_id': partner.id
        })
        tax = tax_model.create({'name': 'My Tax'})
        product = product_model.create({
            'default_code': 'MyCode',
            'name': 'My Product',
            'weight': 15,
            'taxes_id': [(6, 0, [tax.id])]
        })
        payment_term = self.env.ref('account.account_payment_term_advance')
        payment_method = payment_method_model.create({
            'name':
            'Cash',
            'payment_term_id':
            payment_term.id,
        })

        order_vals = {
            'name':
            'mag_10000001',
            'partner_id':
            partner.id,
            'payment_method_id':
            payment_method.id,
            'order_line': [
                (0, 0, {
                    'product_id': product.id,
                    'price_unit': 20,
                    'name': 'My Real Name',
                    'product_uom_qty': 1,
                    'sequence': 1,
                }),
            ],
            # fake field for the lines coming from a backend
            'backend_order_line': [
                (0, 0, {
                    'product_id': product.id,
                    'price_unit': 10,
                    'name': 'Line 2',
                    'product_uom_qty': 2,
                    'sequence': 2,
                }),
            ],
        }

        extra_lines = order_vals['backend_order_line']

        onchange = SaleOrderOnChange(env)
        order = onchange.play(order_vals, extra_lines)

        self.assertEqual(order['partner_invoice_id'], partner_invoice.id)
        self.assertEqual(order['payment_term'], payment_term.id)
        self.assertEqual(len(order['order_line']), 1)
        line = order['order_line'][0][2]
        self.assertEqual(line['name'], 'My Real Name')
        self.assertEqual(line['th_weight'], 15)
        self.assertEqual(line['tax_id'], [(6, 0, [tax.id])])
        line = order['backend_order_line'][0][2]
        self.assertEqual(line['name'], 'Line 2')
        self.assertEqual(line['th_weight'], 30)
        self.assertEqual(line['tax_id'], [(6, 0, [tax.id])])