{"action":"created","comment":{"url":"https://api.github.com/repos/coursera/dataduct/pulls/comments/23254456","id":23254456,"diff_hunk":"@@ -105,9 +105,9 @@ def has_cycles(self, relation=None, visited=None):\n             if relation.full_name in visited:\n                 return True\n             # Make a copy for immutability\n-            visited = deepcopy(visited)\n-            visited.append(relation.full_name)\n-            if self.has_cycles(relation, visited):\n+            visited_copy = deepcopy(visited)","path":"dataduct/database/database.py","position":7,"original_position":7,"commit_id":"5d177c82ebfb209bb5b96629961a82c116f1a8fa","original_commit_id":"5d177c82ebfb209bb5b96629961a82c116f1a8fa","user":{"login":"sb2nov","id":1517779,"avatar_url":"https://avatars.githubusercontent.com/u/1517779?v=3","gravatar_id":"","url":"https://api.github.com/users/sb2nov","html_url":"https://github.com/sb2nov","followers_url":"https://api.github.com/users/sb2nov/followers","following_url":"https://api.github.com/users/sb2nov/following{/other_user}","gists_url":"https://api.github.com/users/sb2nov/gists{/gist_id}","starred_url":"https://api.github.com/users/sb2nov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sb2nov/subscriptions","organizations_url":"https://api.github.com/users/sb2nov/orgs","repos_url":"https://api.github.com/users/sb2nov/repos","events_url":"https://api.github.com/users/sb2nov/events{/privacy}","received_events_url":"https://api.github.com/users/sb2nov/received_events","type":"User","site_admin":false},"body":"why do you need this ?","created_at":"2015-01-20T20:49:14Z","updated_at":"2015-01-20T20:49:14Z","html_url":"https://github.com/coursera/dataduct/pull/21#discussion_r23254456","pull_request_url":"https://api.github.com/repos/coursera/dataduct/pulls/21","_links":{"self":{"href":"https://api.github.com/repos/coursera/dataduct/pulls/comments/23254456"},"html":{"href":"https://github.com/coursera/dataduct/pull/21#discussion_r23254456"},"pull_request":{"href":"https://api.github.com/repos/coursera/dataduct/pulls/21"}}},"pull_request":{"url":"https://api.github.com/repos/coursera/dataduct/pulls/21","id":27650368,"html_url":"https://github.com/coursera/dataduct/pull/21","diff_url":"https://github.com/coursera/dataduct/pull/21.diff","patch_url":"https://github.com/coursera/dataduct/pull/21.patch","issue_url":"https://api.github.com/repos/coursera/dataduct/issues/21","number":21,"state":"open","locked":false,"title":"Add many unit tests, fix some bugs","user":{"login":"tpcstld","id":5456182,"avatar_url":"https://avatars.githubusercontent.com/u/5456182?v=3","gravatar_id":"","url":"https://api.github.com/users/tpcstld","html_url":"https://github.com/tpcstld","followers_url":"https://api.github.com/users/tpcstld/followers","following_url":"https://api.github.com/users/tpcstld/following{/other_user}","gists_url":"https://api.github.com/users/tpcstld/gists{/gist_id}","starred_url":"https://api.github.com/users/tpcstld/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tpcstld/subscriptions","organizations_url":"https://api.github.com/users/tpcstld/orgs","repos_url":"https://api.github.com/users/tpcstld/repos","events_url":"https://api.github.com/users/tpcstld/events{/privacy}","received_events_url":"https://api.github.com/users/tpcstld/received_events","type":"User","site_admin":false},"body":"Most unittests are for database.py\r\nAdded testfixtures framework to mock files","created_at":"2015-01-20T02:46:02Z","updated_at":"2015-01-20T20:49:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1df3ab4fabd53ac92614676fe5a863301ffaf8ac","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/coursera/dataduct/pulls/21/commits","review_comments_url":"https://api.github.com/repos/coursera/dataduct/pulls/21/comments","review_comment_url":"https://api.github.com/repos/coursera/dataduct/pulls/comments/{number}","comments_url":"https://api.github.com/repos/coursera/dataduct/issues/21/comments","statuses_url":"https://api.github.com/repos/coursera/dataduct/statuses/5d177c82ebfb209bb5b96629961a82c116f1a8fa","head":{"label":"coursera:jj_tests","ref":"jj_tests","sha":"5d177c82ebfb209bb5b96629961a82c116f1a8fa","user":{"login":"coursera","id":1744549,"avatar_url":"https://avatars.githubusercontent.com/u/1744549?v=3","gravatar_id":"","url":"https://api.github.com/users/coursera","html_url":"https://github.com/coursera","followers_url":"https://api.github.com/users/coursera/followers","following_url":"https://api.github.com/users/coursera/following{/other_user}","gists_url":"https://api.github.com/users/coursera/gists{/gist_id}","starred_url":"https://api.github.com/users/coursera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coursera/subscriptions","organizations_url":"https://api.github.com/users/coursera/orgs","repos_url":"https://api.github.com/users/coursera/repos","events_url":"https://api.github.com/users/coursera/events{/privacy}","received_events_url":"https://api.github.com/users/coursera/received_events","type":"Organization","site_admin":false},"repo":{"id":26459023,"name":"dataduct","full_name":"coursera/dataduct","owner":{"login":"coursera","id":1744549,"avatar_url":"https://avatars.githubusercontent.com/u/1744549?v=3","gravatar_id":"","url":"https://api.github.com/users/coursera","html_url":"https://github.com/coursera","followers_url":"https://api.github.com/users/coursera/followers","following_url":"https://api.github.com/users/coursera/following{/other_user}","gists_url":"https://api.github.com/users/coursera/gists{/gist_id}","starred_url":"https://api.github.com/users/coursera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coursera/subscriptions","organizations_url":"https://api.github.com/users/coursera/orgs","repos_url":"https://api.github.com/users/coursera/repos","events_url":"https://api.github.com/users/coursera/events{/privacy}","received_events_url":"https://api.github.com/users/coursera/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/coursera/dataduct","description":"DataPipeline for humans.","fork":false,"url":"https://api.github.com/repos/coursera/dataduct","forks_url":"https://api.github.com/repos/coursera/dataduct/forks","keys_url":"https://api.github.com/repos/coursera/dataduct/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coursera/dataduct/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coursera/dataduct/teams","hooks_url":"https://api.github.com/repos/coursera/dataduct/hooks","issue_events_url":"https://api.github.com/repos/coursera/dataduct/issues/events{/number}","events_url":"https://api.github.com/repos/coursera/dataduct/events","assignees_url":"https://api.github.com/repos/coursera/dataduct/assignees{/user}","branches_url":"https://api.github.com/repos/coursera/dataduct/branches{/branch}","tags_url":"https://api.github.com/repos/coursera/dataduct/tags","blobs_url":"https://api.github.com/repos/coursera/dataduct/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coursera/dataduct/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coursera/dataduct/git/refs{/sha}","trees_url":"https://api.github.com/repos/coursera/dataduct/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coursera/dataduct/statuses/{sha}","languages_url":"https://api.github.com/repos/coursera/dataduct/languages","stargazers_url":"https://api.github.com/repos/coursera/dataduct/stargazers","contributors_url":"https://api.github.com/repos/coursera/dataduct/contributors","subscribers_url":"https://api.github.com/repos/coursera/dataduct/subscribers","subscription_url":"https://api.github.com/repos/coursera/dataduct/subscription","commits_url":"https://api.github.com/repos/coursera/dataduct/commits{/sha}","git_commits_url":"https://api.github.com/repos/coursera/dataduct/git/commits{/sha}","comments_url":"https://api.github.com/repos/coursera/dataduct/comments{/number}","issue_comment_url":"https://api.github.com/repos/coursera/dataduct/issues/comments/{number}","contents_url":"https://api.github.com/repos/coursera/dataduct/contents/{+path}","compare_url":"https://api.github.com/repos/coursera/dataduct/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coursera/dataduct/merges","archive_url":"https://api.github.com/repos/coursera/dataduct/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coursera/dataduct/downloads","issues_url":"https://api.github.com/repos/coursera/dataduct/issues{/number}","pulls_url":"https://api.github.com/repos/coursera/dataduct/pulls{/number}","milestones_url":"https://api.github.com/repos/coursera/dataduct/milestones{/number}","notifications_url":"https://api.github.com/repos/coursera/dataduct/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coursera/dataduct/labels{/name}","releases_url":"https://api.github.com/repos/coursera/dataduct/releases{/id}","created_at":"2014-11-10T22:33:07Z","updated_at":"2015-01-16T02:49:26Z","pushed_at":"2015-01-20T18:28:26Z","git_url":"git://github.com/coursera/dataduct.git","ssh_url":"git@github.com:coursera/dataduct.git","clone_url":"https://github.com/coursera/dataduct.git","svn_url":"https://github.com/coursera/dataduct","homepage":"","size":727,"stargazers_count":26,"watchers_count":26,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":26,"default_branch":"master"}},"base":{"label":"coursera:develop","ref":"develop","sha":"9ca9979e57bdd99e670f4dfcc0a2697737bbb1ee","user":{"login":"coursera","id":1744549,"avatar_url":"https://avatars.githubusercontent.com/u/1744549?v=3","gravatar_id":"","url":"https://api.github.com/users/coursera","html_url":"https://github.com/coursera","followers_url":"https://api.github.com/users/coursera/followers","following_url":"https://api.github.com/users/coursera/following{/other_user}","gists_url":"https://api.github.com/users/coursera/gists{/gist_id}","starred_url":"https://api.github.com/users/coursera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coursera/subscriptions","organizations_url":"https://api.github.com/users/coursera/orgs","repos_url":"https://api.github.com/users/coursera/repos","events_url":"https://api.github.com/users/coursera/events{/privacy}","received_events_url":"https://api.github.com/users/coursera/received_events","type":"Organization","site_admin":false},"repo":{"id":26459023,"name":"dataduct","full_name":"coursera/dataduct","owner":{"login":"coursera","id":1744549,"avatar_url":"https://avatars.githubusercontent.com/u/1744549?v=3","gravatar_id":"","url":"https://api.github.com/users/coursera","html_url":"https://github.com/coursera","followers_url":"https://api.github.com/users/coursera/followers","following_url":"https://api.github.com/users/coursera/following{/other_user}","gists_url":"https://api.github.com/users/coursera/gists{/gist_id}","starred_url":"https://api.github.com/users/coursera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coursera/subscriptions","organizations_url":"https://api.github.com/users/coursera/orgs","repos_url":"https://api.github.com/users/coursera/repos","events_url":"https://api.github.com/users/coursera/events{/privacy}","received_events_url":"https://api.github.com/users/coursera/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/coursera/dataduct","description":"DataPipeline for humans.","fork":false,"url":"https://api.github.com/repos/coursera/dataduct","forks_url":"https://api.github.com/repos/coursera/dataduct/forks","keys_url":"https://api.github.com/repos/coursera/dataduct/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coursera/dataduct/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coursera/dataduct/teams","hooks_url":"https://api.github.com/repos/coursera/dataduct/hooks","issue_events_url":"https://api.github.com/repos/coursera/dataduct/issues/events{/number}","events_url":"https://api.github.com/repos/coursera/dataduct/events","assignees_url":"https://api.github.com/repos/coursera/dataduct/assignees{/user}","branches_url":"https://api.github.com/repos/coursera/dataduct/branches{/branch}","tags_url":"https://api.github.com/repos/coursera/dataduct/tags","blobs_url":"https://api.github.com/repos/coursera/dataduct/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coursera/dataduct/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coursera/dataduct/git/refs{/sha}","trees_url":"https://api.github.com/repos/coursera/dataduct/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coursera/dataduct/statuses/{sha}","languages_url":"https://api.github.com/repos/coursera/dataduct/languages","stargazers_url":"https://api.github.com/repos/coursera/dataduct/stargazers","contributors_url":"https://api.github.com/repos/coursera/dataduct/contributors","subscribers_url":"https://api.github.com/repos/coursera/dataduct/subscribers","subscription_url":"https://api.github.com/repos/coursera/dataduct/subscription","commits_url":"https://api.github.com/repos/coursera/dataduct/commits{/sha}","git_commits_url":"https://api.github.com/repos/coursera/dataduct/git/commits{/sha}","comments_url":"https://api.github.com/repos/coursera/dataduct/comments{/number}","issue_comment_url":"https://api.github.com/repos/coursera/dataduct/issues/comments/{number}","contents_url":"https://api.github.com/repos/coursera/dataduct/contents/{+path}","compare_url":"https://api.github.com/repos/coursera/dataduct/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coursera/dataduct/merges","archive_url":"https://api.github.com/repos/coursera/dataduct/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coursera/dataduct/downloads","issues_url":"https://api.github.com/repos/coursera/dataduct/issues{/number}","pulls_url":"https://api.github.com/repos/coursera/dataduct/pulls{/number}","milestones_url":"https://api.github.com/repos/coursera/dataduct/milestones{/number}","notifications_url":"https://api.github.com/repos/coursera/dataduct/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coursera/dataduct/labels{/name}","releases_url":"https://api.github.com/repos/coursera/dataduct/releases{/id}","created_at":"2014-11-10T22:33:07Z","updated_at":"2015-01-16T02:49:26Z","pushed_at":"2015-01-20T18:28:26Z","git_url":"git://github.com/coursera/dataduct.git","ssh_url":"git@github.com:coursera/dataduct.git","clone_url":"https://github.com/coursera/dataduct.git","svn_url":"https://github.com/coursera/dataduct","homepage":"","size":727,"stargazers_count":26,"watchers_count":26,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":2,"forks":1,"open_issues":2,"watchers":26,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coursera/dataduct/pulls/21"},"html":{"href":"https://github.com/coursera/dataduct/pull/21"},"issue":{"href":"https://api.github.com/repos/coursera/dataduct/issues/21"},"comments":{"href":"https://api.github.com/repos/coursera/dataduct/issues/21/comments"},"review_comments":{"href":"https://api.github.com/repos/coursera/dataduct/pulls/21/comments"},"review_comment":{"href":"https://api.github.com/repos/coursera/dataduct/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/coursera/dataduct/pulls/21/commits"},"statuses":{"href":"https://api.github.com/repos/coursera/dataduct/statuses/5d177c82ebfb209bb5b96629961a82c116f1a8fa"}}}}