Exemplo n.º 1
0
    def test_import_sale_order_with_discount(self):
        """ Import sale order with discounts"""
        backend_id = self.backend_id
        storeview_model = self.env['magento.storeview']
        storeview = storeview_model.search([('backend_id', '=', backend_id),
                                            ('magento_id', '=', '2')])
        storeview.write({'catalog_price_tax_included': True})
        with mock_api(magento_base_responses):
            with mock_urlopen_image():
                import_record(self.session, 'magento.sale.order', backend_id,
                              900000696)
        mag_order_model = self.env['magento.sale.order']
        mag_order = mag_order_model.search([('backend_id', '=', backend_id),
                                            ('magento_id', '=', '900000696')])
        self.assertEqual(len(mag_order), 1)
        order = mag_order.odoo_id
        self.assertAlmostEqual(order.amount_total, 36.9500)

        for line in order.order_line:
            if line.name == 'Item 1':
                self.assertAlmostEqual(line.discount, 11.904)
            elif line.name == 'Item 2':
                self.assertAlmostEqual(line.discount, 11.957)
            else:
                self.fail('encountered unexpected sale '
                          'order line %s' % line.name)
    def test_10_import_sale_comment_for_edited_sale_order(self):
        """ Test import of sale order comment for edited sale order
        Note: the parent have been note cancel in the magento_base_response
        because we want to import the both sale order.
        """
        cr = self.cr
        uid = self.uid
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            with mock_urlopen_image():
                import_record(self.session, 'magento.sale.order', backend_id,
                              '900000691-1')
                order_model = self.registry('magento.sale.order')
        mag_order_ids = order_model.search(cr, uid, [
            ('backend_id', '=', backend_id),
            ('magento_id', '=', '900000691-1'),
        ])
        self.assertEqual(len(mag_order_ids), 1)

        order = order_model.read(cr, uid, mag_order_ids[0], ['odoo_id'])
        order_id = order['odoo_id'][0]

        comment_ids = self.registry('magento.sale.comment').search(
            cr, uid, [
                ('backend_id', '=', backend_id),
                ('res_id', '=', order_id),
            ])
        # The sale order 900000691 have 1 comment
        # and the 900000691-1 have 2 comment
        # Total is 3 comment
        self.assertEqual(len(comment_ids), 3)
Exemplo n.º 3
0
 def test_import_product_virtual(self):
     """ Virtual should fail: not yet supported """
     backend_id = self.backend_id
     with mock_api(magento_base_responses):
         with self.assertRaises(InvalidDataError):
             import_record(self.session, 'magento.product.product',
                           backend_id, 144)
Exemplo n.º 4
0
 def test_individual_2_addresses(self):
     """ Import an individual (b2c) with 2 addresses """
     with mock_api(individual_2_addresses):
         import_record(self.session, 'magento.res.partner', self.backend_id,
                       '9999255')
     partner = self.model.search([('magento_id', '=', '9999255'),
                                  ('backend_id', '=', self.backend_id)])
     self.assertEqual(len(partner), 1)
     # Name of the billing address
     self.assertEqual(partner.name, u'Mace Sébastien')
     self.assertEqual(partner.type, 'default')
     # billing address merged with the partner,
     # second address as a contact
     self.assertEqual(len(partner.child_ids), 1)
     self.assertEqual(len(partner.magento_bind_ids), 1)
     self.assertEqual(len(partner.magento_address_bind_ids), 1)
     address_bind = partner.magento_address_bind_ids[0]
     self.assertEqual(address_bind.magento_id,
                      '9999254',
                      msg="The merged address should be the "
                      "billing address")
     self.assertEqual(partner.child_ids[0].type,
                      'delivery',
                      msg="The shipping address should be of "
                      "type 'delivery'")
Exemplo n.º 5
0
    def test_import_product_category_with_gap(self):
        """ Import of a product category when parent categories are missing """
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            import_record(self.session, 'magento.product.category', backend_id,
                          8)

        category_model = self.env['magento.product.category']
        categories = category_model.search([('backend_id', '=', backend_id)])
        self.assertEqual(len(categories), 4)
Exemplo n.º 6
0
    def test_import_product_category(self):
        """ Import of a product category """
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            import_record(self.session, 'magento.product.category', backend_id,
                          1)

        category_model = self.env['magento.product.category']
        category = category_model.search([('backend_id', '=', backend_id)])
        self.assertEqual(len(category), 1)
Exemplo n.º 7
0
 def test_no_address(self):
     """ Import an account without any address """
     with mock_api(no_address):
         import_record(self.session, 'magento.res.partner', self.backend_id,
                       '9999253')
     partner = self.model.search([('magento_id', '=', '9999253'),
                                  ('backend_id', '=', self.backend_id)])
     self.assertEqual(len(partner), 1)
     self.assertEqual(partner.name, 'Benjamin Le Goff')
     self.assertEqual(partner.type, 'default')
     self.assertEqual(len(partner.child_ids), 0)
Exemplo n.º 8
0
 def test_import_sale_order_no_website_id(self):
     """ Import sale order: website_id is missing, happens with magento """
     backend_id = self.backend_id
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend_id,
                           900000692)
     order_model = self.env['magento.sale.order']
     order = order_model.search([('backend_id', '=', backend_id),
                                 ('magento_id', '=', '900000692')])
     self.assertEqual(len(order), 1)
 def setUp(self):
     super(TestUpdateStockQty, self).setUp()
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.product.product',
                           self.backend_id, 16)
     product_model = self.env['magento.product.product']
     self.binding_product = product_model.search([
         ('backend_id', '=', self.backend_id), ('magento_id', '=', '16')
     ])
     self.assertEqual(len(self.binding_product), 1)
Exemplo n.º 10
0
    def test_import_product_category_missing(self):
        """ Import of a simple product when the category is missing """
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            with mock_urlopen_image():
                import_record(self.session, 'magento.product.product',
                              backend_id, 25)

        product_model = self.env['magento.product.product']
        product = product_model.search([('backend_id', '=', backend_id),
                                        ('magento_id', '=', '25')])
        self.assertEqual(len(product), 1)
Exemplo n.º 11
0
    def test_import_product_configurable(self):
        """ Import of a configurable product : no need to import it """
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            with mock_urlopen_image():
                import_record(self.session, 'magento.product.product',
                              backend_id, 126)

        product_model = self.env['magento.product.product']
        products = product_model.search([('backend_id', '=', backend_id),
                                         ('magento_id', '=', '126')])
        self.assertEqual(len(products), 0)
Exemplo n.º 12
0
 def _import_sale_order(self, increment_id, responses=None):
     if responses is None:
         responses = magento_base_responses
     backend_id = self.backend_id
     with mock_api(responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend_id,
                           increment_id)
     MagentoOrder = self.env['magento.sale.order']
     binding = MagentoOrder.search([('backend_id', '=', backend_id),
                                    ('magento_id', '=', str(increment_id))])
     self.assertEqual(len(binding), 1)
     return binding
    def test_import_partner_category(self):
        """ Import of a partner category """
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            import_record(self.session, 'magento.res.partner.category',
                          backend_id, 2)

        binding_model = self.env['magento.res.partner.category']
        category = binding_model.search([('backend_id', '=', backend_id),
                                         ('magento_id', '=', '2')])
        self.assertEqual(len(category), 1)
        self.assertEqual(category.name, 'Wholesale')
        self.assertEqual(category.tax_class_id, 3)
Exemplo n.º 14
0
 def test_import_sale_order_with_prefix(self):
     """ Import sale order with prefix """
     backend = self.backend_model.browse(self.backend_id)
     backend.write({'sale_prefix': 'EC'})
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend.id,
                           900000693)
     order_model = self.env['magento.sale.order']
     order = order_model.search([('backend_id', '=', backend.id),
                                 ('magento_id', '=', '900000693')])
     self.assertEqual(len(order), 1)
     self.assertEqual(order.name, 'EC900000693')
Exemplo n.º 15
0
 def test_import_sale_order(self):
     """ Import sale order: check """
     backend_id = self.backend_id
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend_id,
                           900000691)
     order_model = self.env['magento.sale.order']
     order = order_model.search([('backend_id', '=', backend_id),
                                 ('magento_id', '=', '900000691')])
     self.assertEqual(len(order), 1)
     self.assertEqual(
         order.payment_term, self.payment_term,
         "If the payment term is empty, the onchanges have not"
         " been applied.")
    def setUp(self):
        super(SetUpMagentoWithSaleOrder, self).setUp()
        cr = self.cr
        uid = self.uid
        mag_order_model = self.registry('magento.sale.order')
        with mock_api(magento_base_responses):
            with mock_urlopen_image():
                import_record(self.session, 'magento.sale.order',
                              self.backend_id, 900000691)

        mag_order_ids = mag_order_model.search(cr, uid, [
            ('backend_id', '=', self.backend_id),
            ('magento_id', '=', '900000691'),
        ])

        self.mag_order = mag_order_model.browse(cr, uid, mag_order_ids[0])
    def test_import_existing_partner_category(self):
        """ Bind of an existing category with same name"""
        binding_model = self.env['magento.res.partner.category']
        category_model = self.env['res.partner.category']

        existing_category = category_model.create({'name': 'Wholesale'})

        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            import_record(self.session, 'magento.res.partner.category',
                          backend_id, 2)

        category = binding_model.search([('backend_id', '=', backend_id),
                                         ('magento_id', '=', '2')])
        self.assertEqual(len(category), 1)
        self.assertEqual(category.odoo_id, existing_category)
        self.assertEqual(category.name, 'Wholesale')
        self.assertEqual(category.tax_class_id, 3)
Exemplo n.º 18
0
 def test_company_1_address(self):
     """ Import an company (b2b) with 1 address """
     with mock_api(company_1_address):
         import_record(self.session, 'magento.res.partner', self.backend_id,
                       '9999256')
     partner = self.model.search([('magento_id', '=', '9999256'),
                                  ('backend_id', '=', self.backend_id)])
     self.assertEqual(len(partner), 1)
     # Company of the billing address
     self.assertEqual(partner.name, 'Marechal')
     self.assertEqual(partner.type, 'default')
     # all addresses as contacts
     self.assertEqual(len(partner.child_ids), 1)
     self.assertEqual(len(partner.magento_bind_ids), 1)
     self.assertEqual(len(partner.magento_address_bind_ids), 0)
     self.assertEqual(partner.child_ids[0].type,
                      'invoice',
                      msg="The billing address should be of "
                      "type 'invoice'")
Exemplo n.º 19
0
 def test_individual_1_address(self):
     """ Import an individual (b2c) with 1 billing address """
     with mock_api(individual_1_address):
         import_record(self.session, 'magento.res.partner', self.backend_id,
                       '9999254')
     partner = self.model.search([('magento_id', '=', '9999254'),
                                  ('backend_id', '=', self.backend_id)])
     self.assertEqual(len(partner), 1)
     # Name of the billing address
     self.assertEqual(partner.name, 'Ferreira Margaux')
     self.assertEqual(partner.type, 'default')
     # billing address merged with the partner
     self.assertEqual(len(partner.child_ids), 0)
     self.assertEqual(len(partner.magento_bind_ids), 1)
     self.assertEqual(len(partner.magento_address_bind_ids), 1)
     address_bind = partner.magento_address_bind_ids[0]
     self.assertEqual(address_bind.magento_id,
                      '9999253',
                      msg="The merged address should be the "
                      "billing address")
Exemplo n.º 20
0
 def test_import_sale_order_with_configurable(self):
     """ Import sale order with configurable product """
     backend_id = self.backend_id
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend_id,
                           900000694)
     mag_order_model = self.env['magento.sale.order']
     mag_order = mag_order_model.search([('backend_id', '=', backend_id),
                                         ('magento_id', '=', '900000694')])
     self.assertEqual(len(mag_order), 1)
     mag_order_line_model = self.env['magento.sale.order.line']
     mag_order_line = mag_order_line_model.search([
         ('backend_id', '=', backend_id),
         ('magento_order_id', '=', mag_order.id)
     ])
     self.assertEqual(len(mag_order_line), 1)
     order_line = mag_order_line.odoo_id
     price_unit = order_line.price_unit
     self.assertAlmostEqual(price_unit, 41.0500)
Exemplo n.º 21
0
 def test_import_sale_order_with_taxes_included(self):
     """ Import sale order with taxes included """
     backend_id = self.backend_id
     storeview_model = self.env['magento.storeview']
     storeview = storeview_model.search([('backend_id', '=', backend_id),
                                         ('magento_id', '=', '1')])
     storeview.write({'catalog_price_tax_included': True})
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend_id,
                           900000695)
     mag_order_model = self.env['magento.sale.order']
     mag_order = mag_order_model.search([('backend_id', '=', backend_id),
                                         ('magento_id', '=', '900000695')])
     self.assertEqual(len(mag_order), 1)
     order = mag_order.odoo_id
     amount_total = order.amount_total
     # 97.5 is the amount_total if connector takes correctly included
     # tax prices.
     self.assertAlmostEqual(amount_total, 97.5000)
Exemplo n.º 22
0
 def setUp(self):
     super(TestExportPicking, self).setUp()
     binding_model = self.env['magento.sale.order']
     # import a sales order
     with mock_api(magento_base_responses):
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order',
                           self.backend_id, 900000691)
     self.order_binding = binding_model.search([
         ('backend_id', '=', self.backend_id),
         ('magento_id', '=', '900000691'),
     ])
     self.assertEquals(len(self.order_binding), 1)
     self.order_binding.ignore_exceptions = True
     # generate sale's picking
     self.order_binding.odoo_id.action_button_confirm()
     self.picking = self.order_binding.picking_ids
     self.assertEquals(len(self.picking), 1)
     magento_shop = self.picking.sale_id.magento_bind_ids[0].store_id
     magento_shop.send_picking_done_mail = True
    def test_10_import_sale_comment(self):
        """ Test import of sale order comment"""
        cr = self.cr
        uid = self.uid
        backend_id = self.backend_id
        with mock_api(magento_base_responses):
            with mock_urlopen_image():
                import_record(self.session, 'magento.sale.order', backend_id,
                              900000695)
                order_model = self.registry('magento.sale.order')
        mag_order_ids = order_model.search(cr, uid, [
            ('backend_id', '=', backend_id),
            ('magento_id', '=', '900000695'),
        ])
        self.assertEqual(len(mag_order_ids), 1)

        order = order_model.read(cr, uid, mag_order_ids[0], ['odoo_id'])
        order_id = order['odoo_id'][0]
        comment_ids = self.registry('magento.sale.comment').search(
            cr, uid, [('backend_id', '=', backend_id),
                      ('res_id', '=', order_id)])
        self.assertEqual(len(comment_ids), 2)
Exemplo n.º 24
0
 def setUp(self):
     super(TestImportAddressBook, self).setUp()
     self.backend_model = self.env['magento.backend']
     self.session = ConnectorSession(self.env.cr,
                                     self.env.uid,
                                     context=self.env.context)
     self.model = self.env['magento.res.partner']
     self.address_model = self.env['magento.address']
     warehouse_id = self.env.ref('stock.warehouse0').id
     self.backend_id = self.backend_model.create({
         'name': 'Test Magento Address book',
         'version': '1.7',
         'location': 'http://anyurl',
         'username': '******',
         'warehouse_id': warehouse_id,
         'password': '******'
     }).id
     with mock_api(magento_base_responses):
         import_batch(self.session, 'magento.website', self.backend_id)
         import_batch(self.session, 'magento.store', self.backend_id)
         import_batch(self.session, 'magento.storeview', self.backend_id)
         import_record(self.session, 'magento.res.partner.category',
                       self.backend_id, 1)
Exemplo n.º 25
0
    def test_company_2_addresses(self):
        """ Import an company (b2b) with 2 addresses """
        with mock_api(company_2_addresses):
            import_record(self.session, 'magento.res.partner', self.backend_id,
                          '9999257')
        partner = self.model.search([('magento_id', '=', '9999257'),
                                     ('backend_id', '=', self.backend_id)])
        self.assertEqual(len(partner), 1)
        # Company of the billing address
        self.assertEqual(partner.name, 'Bertin')
        self.assertEqual(partner.type, 'default')
        # all addresses as contacts
        self.assertEqual(len(partner.child_ids), 2)
        self.assertEqual(len(partner.magento_bind_ids), 1)
        self.assertEqual(len(partner.magento_address_bind_ids), 0)

        def get_address(magento_id):
            address = self.address_model.search([
                ('magento_id', '=', magento_id),
                ('backend_id', '=', self.backend_id)
            ])
            self.assertEqual(len(address), 1)
            return address

        # billing address
        address = get_address('9999257')
        self.assertEqual(address.type,
                         'invoice',
                         msg="The billing address should be of "
                         "type 'invoice'")
        # shipping address
        address = get_address('9999258')
        self.assertEqual(address.type,
                         'delivery',
                         msg="The shipping address should be of "
                         "type 'delivery'")
    def setUp(self):
        super(TestImportProductImage, self).setUp()
        backend_model = self.env['magento.backend']
        warehouse = self.env.ref('stock.warehouse0')
        self.backend_id = backend_model.create({
            'name': 'Test Magento',
            'version': '1.7',
            'location': 'http://anyurl',
            'username': '******',
            'warehouse_id': warehouse.id,
            'password': '******'
        }).id

        self.session = ConnectorSession(self.env.cr,
                                        self.env.uid,
                                        context=self.env.context)
        with mock_api(magento_base_responses):
            import_batch(self.session, 'magento.website', self.backend_id)
            import_batch(self.session, 'magento.store', self.backend_id)
            import_batch(self.session, 'magento.storeview', self.backend_id)
            import_record(self.session, 'magento.product.category',
                          self.backend_id, 1)

        self.product_model = self.env['magento.product.product']
Exemplo n.º 27
0
 def setUp(self):
     super(TestExportInvoice, self).setUp()
     backend_model = self.env['magento.backend']
     self.mag_sale_model = self.env['magento.sale.order']
     self.session = ConnectorSession(self.env.cr,
                                     self.env.uid,
                                     context=self.env.context)
     warehouse = self.env.ref('stock.warehouse0')
     self.backend = backend = backend_model.create({
         'name':
         'Test Magento',
         'version':
         '1.7',
         'location':
         'http://anyurl',
         'username':
         '******',
         'warehouse_id':
         warehouse.id,
         'password':
         '******'
     })
     # payment method needed to import a sale order
     workflow = self.env.ref('sale_automatic_workflow.manual_validation')
     journal = self.env.ref('account.check_journal')
     self.payment_method = self.env['payment.method'].create({
         'name':
         'checkmo',
         'create_invoice_on':
         False,
         'workflow_process_id':
         workflow.id,
         'import_rule':
         'always',
         'journal_id':
         journal.id
     })
     self.journal = self.env.ref('account.bank_journal')
     self.pay_account = self.env.ref('account.cash')
     self.period = self.env.ref('account.period_10')
     # import the base informations
     with mock_api(magento_base_responses):
         import_batch(self.session, 'magento.website', backend.id)
         import_batch(self.session, 'magento.store', backend.id)
         import_batch(self.session, 'magento.storeview', backend.id)
         with mock_urlopen_image():
             import_record(self.session, 'magento.sale.order', backend.id,
                           900000691)
     self.stores = self.backend.mapped('website_ids.store_ids')
     sales = self.mag_sale_model.search([('backend_id', '=', backend.id),
                                         ('magento_id', '=', '900000691')])
     self.assertEqual(len(sales), 1)
     self.mag_sale = sales
     # ignore exceptions on the sale order
     self.mag_sale.ignore_exceptions = True
     self.mag_sale.odoo_id.action_button_confirm()
     sale = self.mag_sale.odoo_id
     invoice_id = sale.action_invoice_create()
     assert invoice_id
     self.invoice_model = self.env['account.invoice']
     self.invoice = self.invoice_model.browse(invoice_id)