{"action":"created","comment":{"url":"https://api.github.com/repos/odoo/odoo/pulls/comments/43610450","id":43610450,"diff_hunk":"@@ -0,0 +1,130 @@\n+# -*- coding: utf-8 -*-\n+\n+from openerp.addons.crm.tests.test_crm_access_group_users import TestCrmAccessGroupUsers\n+\n+class TestCrmLeadMerge(TestCrmAccessGroupUsers):\n+\n+    def test_crm_lead_merge(self):\n+        \"\"\" Tests for Test Crm Lead Merge \"\"\"\n+        CrmLead = self.env['crm.lead']\n+        CrmMergeOpportunity = self.env['crm.merge.opportunity']\n+\n+        # During a mixed merge (involving leads and opps), data should be handled a certain way following their type (m2o, m2m, text, ...)  Start by creating two leads and an opp and giving the rights of Sales manager.\n+        test_crm_opp_1 = CrmLead.sudo(self.crm_res_users_salesmanager.id).create(\n+            dict(\n+                lead_type='opportunity',\n+                name='Test opportunity 1',\n+                partner_id=self.env.ref(\"base.res_partner_3\").id,\n+                stage_id=self.env.ref(\"crm.stage_lead1\").id,\n+                description='This is the description of the test opp 1.',\n+            ))\n+\n+        test_crm_lead_first = CrmLead.sudo(self.crm_res_users_salesmanager.id).create(\n+            dict(\n+                lead_type='lead',\n+                name='Test lead first',\n+                partner_id=self.env.ref(\"base.res_partner_1\").id,\n+                stage_id=self.env.ref(\"crm.stage_lead1\").id,\n+                description='This is the description of the test lead first.',\n+            ))\n+\n+        test_crm_lead_second = CrmLead.sudo(self.crm_res_users_salesmanager.id).create(\n+            dict(\n+                lead_type='lead',\n+                name='Test lead second',\n+                partner_id=self.env.ref(\"base.res_partner_1\").id,\n+                stage_id=self.env.ref(\"crm.stage_lead1\").id,\n+                description='This is the description of the test lead second.',\n+            ))\n+\n+        lead_ids = [test_crm_opp_1.id, test_crm_lead_first.id, test_crm_lead_second.id]\n+        context = {'active_model': 'crm.lead', 'active_ids': lead_ids, 'active_id': lead_ids[0]}\n+\n+        # I create a merge wizard and merge the leads and opp together in the first item of the list.\n+        merge_opp_wizard_01 = CrmMergeOpportunity.create(\n+            dict(\n+                opportunity_ids=[(6, 0, lead_ids)],\n+            ))\n+        merge_opp_wizard_01.action_merge()\n+\n+        # I check for the resulting merged opp (based on name and partner).\n+        merge = CrmLead.with_context(context).search([('name', '=', 'Test opportunity 1'), ('partner_id', '=', self.env.ref(\"base.res_partner_3\").id)])\n+        self.assertTrue(merge, 'Fail to create merge opportunity wizard')\n+        self.assertEqual(merge[0].description, 'This is the description of the test opp 1.\\n\\nThis is the description of the test lead first.\\n\\nThis is the description of the test lead second.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separated with line returns')\n+        self.assertEqual(merge[0].lead_type, 'opportunity', 'Type mismatch: when at least one opp in involved in the merge, the result should be a new opp (instead of %s)' % merge[0].lead_type)\n+\n+        # The other (tailing) leads/opps shouldn't exist anymore.\n+        tailing_lead = CrmLead.search([('id', '=', test_crm_lead_first.id)])\n+        self.assertFalse(tailing_lead, 'This tailing lead (id %s) should not exist anymore' % test_crm_lead_second.id)\n+\n+        tailing_opp = CrmLead.search([('id', '=', test_crm_lead_second.id)])","path":"addons/crm/tests/test_crm_lead_merge.py","position":60,"original_position":60,"commit_id":"e96763db94a25c902652fab5ba20df9574bc221e","original_commit_id":"e96763db94a25c902652fab5ba20df9574bc221e","user":{"login":"atp-odoo","id":7599410,"avatar_url":"https://avatars.githubusercontent.com/u/7599410?v=3","gravatar_id":"","url":"https://api.github.com/users/atp-odoo","html_url":"https://github.com/atp-odoo","followers_url":"https://api.github.com/users/atp-odoo/followers","following_url":"https://api.github.com/users/atp-odoo/following{/other_user}","gists_url":"https://api.github.com/users/atp-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/atp-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atp-odoo/subscriptions","organizations_url":"https://api.github.com/users/atp-odoo/orgs","repos_url":"https://api.github.com/users/atp-odoo/repos","events_url":"https://api.github.com/users/atp-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/atp-odoo/received_events","type":"User","site_admin":false},"body":"same here use browse... ","created_at":"2015-11-02T09:41:27Z","updated_at":"2015-11-02T09:41:27Z","html_url":"https://github.com/odoo/odoo/pull/8955#discussion_r43610450","pull_request_url":"https://api.github.com/repos/odoo/odoo/pulls/8955","_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments/43610450"},"html":{"href":"https://github.com/odoo/odoo/pull/8955#discussion_r43610450"},"pull_request":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8955"}}},"pull_request":{"url":"https://api.github.com/repos/odoo/odoo/pulls/8955","id":47127025,"html_url":"https://github.com/odoo/odoo/pull/8955","diff_url":"https://github.com/odoo/odoo/pull/8955.diff","patch_url":"https://github.com/odoo/odoo/pull/8955.patch","issue_url":"https://api.github.com/repos/odoo/odoo/issues/8955","number":8955,"state":"open","locked":false,"title":"CRM: migrate into new api","user":{"login":"hmo-odoo","id":6368068,"avatar_url":"https://avatars.githubusercontent.com/u/6368068?v=3","gravatar_id":"","url":"https://api.github.com/users/hmo-odoo","html_url":"https://github.com/hmo-odoo","followers_url":"https://api.github.com/users/hmo-odoo/followers","following_url":"https://api.github.com/users/hmo-odoo/following{/other_user}","gists_url":"https://api.github.com/users/hmo-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/hmo-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hmo-odoo/subscriptions","organizations_url":"https://api.github.com/users/hmo-odoo/orgs","repos_url":"https://api.github.com/users/hmo-odoo/repos","events_url":"https://api.github.com/users/hmo-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/hmo-odoo/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-10-08T08:59:40Z","updated_at":"2015-11-02T09:41:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7dfed7e8c854cd9f4868afd0a90665e30d2f8556","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/odoo/odoo/pulls/8955/commits","review_comments_url":"https://api.github.com/repos/odoo/odoo/pulls/8955/comments","review_comment_url":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/odoo/odoo/issues/8955/comments","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/e96763db94a25c902652fab5ba20df9574bc221e","head":{"label":"odoo-dev:master-crm-new-api-apa","ref":"master-crm-new-api-apa","sha":"e96763db94a25c902652fab5ba20df9574bc221e","user":{"login":"odoo-dev","id":7466976,"avatar_url":"https://avatars.githubusercontent.com/u/7466976?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo-dev","html_url":"https://github.com/odoo-dev","followers_url":"https://api.github.com/users/odoo-dev/followers","following_url":"https://api.github.com/users/odoo-dev/following{/other_user}","gists_url":"https://api.github.com/users/odoo-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo-dev/subscriptions","organizations_url":"https://api.github.com/users/odoo-dev/orgs","repos_url":"https://api.github.com/users/odoo-dev/repos","events_url":"https://api.github.com/users/odoo-dev/events{/privacy}","received_events_url":"https://api.github.com/users/odoo-dev/received_events","type":"Organization","site_admin":false},"repo":{"id":19853934,"name":"odoo","full_name":"odoo-dev/odoo","owner":{"login":"odoo-dev","id":7466976,"avatar_url":"https://avatars.githubusercontent.com/u/7466976?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo-dev","html_url":"https://github.com/odoo-dev","followers_url":"https://api.github.com/users/odoo-dev/followers","following_url":"https://api.github.com/users/odoo-dev/following{/other_user}","gists_url":"https://api.github.com/users/odoo-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo-dev/subscriptions","organizations_url":"https://api.github.com/users/odoo-dev/orgs","repos_url":"https://api.github.com/users/odoo-dev/repos","events_url":"https://api.github.com/users/odoo-dev/events{/privacy}","received_events_url":"https://api.github.com/users/odoo-dev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/odoo-dev/odoo","description":"RD Dev Repository","fork":true,"url":"https://api.github.com/repos/odoo-dev/odoo","forks_url":"https://api.github.com/repos/odoo-dev/odoo/forks","keys_url":"https://api.github.com/repos/odoo-dev/odoo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/odoo-dev/odoo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/odoo-dev/odoo/teams","hooks_url":"https://api.github.com/repos/odoo-dev/odoo/hooks","issue_events_url":"https://api.github.com/repos/odoo-dev/odoo/issues/events{/number}","events_url":"https://api.github.com/repos/odoo-dev/odoo/events","assignees_url":"https://api.github.com/repos/odoo-dev/odoo/assignees{/user}","branches_url":"https://api.github.com/repos/odoo-dev/odoo/branches{/branch}","tags_url":"https://api.github.com/repos/odoo-dev/odoo/tags","blobs_url":"https://api.github.com/repos/odoo-dev/odoo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/odoo-dev/odoo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/odoo-dev/odoo/git/refs{/sha}","trees_url":"https://api.github.com/repos/odoo-dev/odoo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/odoo-dev/odoo/statuses/{sha}","languages_url":"https://api.github.com/repos/odoo-dev/odoo/languages","stargazers_url":"https://api.github.com/repos/odoo-dev/odoo/stargazers","contributors_url":"https://api.github.com/repos/odoo-dev/odoo/contributors","subscribers_url":"https://api.github.com/repos/odoo-dev/odoo/subscribers","subscription_url":"https://api.github.com/repos/odoo-dev/odoo/subscription","commits_url":"https://api.github.com/repos/odoo-dev/odoo/commits{/sha}","git_commits_url":"https://api.github.com/repos/odoo-dev/odoo/git/commits{/sha}","comments_url":"https://api.github.com/repos/odoo-dev/odoo/comments{/number}","issue_comment_url":"https://api.github.com/repos/odoo-dev/odoo/issues/comments{/number}","contents_url":"https://api.github.com/repos/odoo-dev/odoo/contents/{+path}","compare_url":"https://api.github.com/repos/odoo-dev/odoo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/odoo-dev/odoo/merges","archive_url":"https://api.github.com/repos/odoo-dev/odoo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/odoo-dev/odoo/downloads","issues_url":"https://api.github.com/repos/odoo-dev/odoo/issues{/number}","pulls_url":"https://api.github.com/repos/odoo-dev/odoo/pulls{/number}","milestones_url":"https://api.github.com/repos/odoo-dev/odoo/milestones{/number}","notifications_url":"https://api.github.com/repos/odoo-dev/odoo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/odoo-dev/odoo/labels{/name}","releases_url":"https://api.github.com/repos/odoo-dev/odoo/releases{/id}","created_at":"2014-05-16T11:16:19Z","updated_at":"2015-10-13T05:17:28Z","pushed_at":"2015-11-02T09:39:54Z","git_url":"git://github.com/odoo-dev/odoo.git","ssh_url":"git@github.com:odoo-dev/odoo.git","clone_url":"https://github.com/odoo-dev/odoo.git","svn_url":"https://github.com/odoo-dev/odoo","homepage":"https://www.odoo.com","size":1479321,"stargazers_count":62,"watchers_count":62,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"open_issues_count":0,"forks":24,"open_issues":0,"watchers":62,"default_branch":"master"}},"base":{"label":"odoo:master","ref":"master","sha":"a588fbf8dce324371c80f29d80d5f151daa6de7e","user":{"login":"odoo","id":6368483,"avatar_url":"https://avatars.githubusercontent.com/u/6368483?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo","html_url":"https://github.com/odoo","followers_url":"https://api.github.com/users/odoo/followers","following_url":"https://api.github.com/users/odoo/following{/other_user}","gists_url":"https://api.github.com/users/odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo/subscriptions","organizations_url":"https://api.github.com/users/odoo/orgs","repos_url":"https://api.github.com/users/odoo/repos","events_url":"https://api.github.com/users/odoo/events{/privacy}","received_events_url":"https://api.github.com/users/odoo/received_events","type":"Organization","site_admin":false},"repo":{"id":19745004,"name":"odoo","full_name":"odoo/odoo","owner":{"login":"odoo","id":6368483,"avatar_url":"https://avatars.githubusercontent.com/u/6368483?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo","html_url":"https://github.com/odoo","followers_url":"https://api.github.com/users/odoo/followers","following_url":"https://api.github.com/users/odoo/following{/other_user}","gists_url":"https://api.github.com/users/odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo/subscriptions","organizations_url":"https://api.github.com/users/odoo/orgs","repos_url":"https://api.github.com/users/odoo/repos","events_url":"https://api.github.com/users/odoo/events{/privacy}","received_events_url":"https://api.github.com/users/odoo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/odoo/odoo","description":"Odoo (formerly OpenERP). Open Source Apps To Grow Your Business.","fork":false,"url":"https://api.github.com/repos/odoo/odoo","forks_url":"https://api.github.com/repos/odoo/odoo/forks","keys_url":"https://api.github.com/repos/odoo/odoo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/odoo/odoo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/odoo/odoo/teams","hooks_url":"https://api.github.com/repos/odoo/odoo/hooks","issue_events_url":"https://api.github.com/repos/odoo/odoo/issues/events{/number}","events_url":"https://api.github.com/repos/odoo/odoo/events","assignees_url":"https://api.github.com/repos/odoo/odoo/assignees{/user}","branches_url":"https://api.github.com/repos/odoo/odoo/branches{/branch}","tags_url":"https://api.github.com/repos/odoo/odoo/tags","blobs_url":"https://api.github.com/repos/odoo/odoo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/odoo/odoo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/odoo/odoo/git/refs{/sha}","trees_url":"https://api.github.com/repos/odoo/odoo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/{sha}","languages_url":"https://api.github.com/repos/odoo/odoo/languages","stargazers_url":"https://api.github.com/repos/odoo/odoo/stargazers","contributors_url":"https://api.github.com/repos/odoo/odoo/contributors","subscribers_url":"https://api.github.com/repos/odoo/odoo/subscribers","subscription_url":"https://api.github.com/repos/odoo/odoo/subscription","commits_url":"https://api.github.com/repos/odoo/odoo/commits{/sha}","git_commits_url":"https://api.github.com/repos/odoo/odoo/git/commits{/sha}","comments_url":"https://api.github.com/repos/odoo/odoo/comments{/number}","issue_comment_url":"https://api.github.com/repos/odoo/odoo/issues/comments{/number}","contents_url":"https://api.github.com/repos/odoo/odoo/contents/{+path}","compare_url":"https://api.github.com/repos/odoo/odoo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/odoo/odoo/merges","archive_url":"https://api.github.com/repos/odoo/odoo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/odoo/odoo/downloads","issues_url":"https://api.github.com/repos/odoo/odoo/issues{/number}","pulls_url":"https://api.github.com/repos/odoo/odoo/pulls{/number}","milestones_url":"https://api.github.com/repos/odoo/odoo/milestones{/number}","notifications_url":"https://api.github.com/repos/odoo/odoo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/odoo/odoo/labels{/name}","releases_url":"https://api.github.com/repos/odoo/odoo/releases{/id}","created_at":"2014-05-13T15:38:58Z","updated_at":"2015-11-02T08:56:12Z","pushed_at":"2015-11-02T09:39:55Z","git_url":"git://github.com/odoo/odoo.git","ssh_url":"git@github.com:odoo/odoo.git","clone_url":"https://github.com/odoo/odoo.git","svn_url":"https://github.com/odoo/odoo","homepage":"https://www.odoo.com","size":1647308,"stargazers_count":3324,"watchers_count":3324,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2962,"mirror_url":null,"open_issues_count":2726,"forks":2962,"open_issues":2726,"watchers":3324,"default_branch":"9.0"}},"_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8955"},"html":{"href":"https://github.com/odoo/odoo/pull/8955"},"issue":{"href":"https://api.github.com/repos/odoo/odoo/issues/8955"},"comments":{"href":"https://api.github.com/repos/odoo/odoo/issues/8955/comments"},"review_comments":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8955/comments"},"review_comment":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8955/commits"},"statuses":{"href":"https://api.github.com/repos/odoo/odoo/statuses/e96763db94a25c902652fab5ba20df9574bc221e"}}}}