Issue50.py
1 ############################ Copyrights and license ############################ 2 # # 3 # Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net> # 4 # Copyright 2012 Zearin <zearin@gonk.net> # 5 # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> # 6 # Copyright 2014 Vincent Jacques <vincent@vincent-jacques.net> # 7 # Copyright 2016 Peter Buckley <dx-pbuckley@users.noreply.github.com> # 8 # Copyright 2018 sfdye <tsfdye@gmail.com> # 9 # # 10 # This file is part of PyGithub. # 11 # http://pygithub.readthedocs.io/ # 12 # # 13 # PyGithub is free software: you can redistribute it and/or modify it under # 14 # the terms of the GNU Lesser General Public License as published by the Free # 15 # Software Foundation, either version 3 of the License, or (at your option) # 16 # any later version. # 17 # # 18 # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # 19 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # 20 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # 21 # details. # 22 # # 23 # You should have received a copy of the GNU Lesser General Public License # 24 # along with PyGithub. If not, see <http://www.gnu.org/licenses/>. # 25 # # 26 ################################################################################ 27 28 from . import Framework 29 30 31 class Issue50(Framework.TestCase): # https://github.com/jacquev6/PyGithub/issues/50 32 def setUp(self): 33 super().setUp() 34 self.repo = self.g.get_user().get_repo("PyGithub") 35 self.issue = self.repo.get_issue(50) 36 self.labelName = "Label with spaces and strange characters (&*#$)" 37 38 def testCreateLabel(self): 39 label = self.repo.create_label(self.labelName, "ffff00") 40 self.assertEqual(label.name, self.labelName) 41 42 def testGetLabel(self): 43 label = self.repo.get_label(self.labelName) 44 self.assertEqual(label.name, self.labelName) 45 46 def testGetLabels(self): 47 self.assertListKeyEqual( 48 self.repo.get_labels(), 49 lambda l: l.name, 50 [ 51 "Refactoring", 52 "Public interface", 53 "Functionalities", 54 "Project management", 55 "Bug", 56 "Question", 57 "RequestedByUser", 58 self.labelName, 59 ], 60 ) 61 62 def testAddLabelToIssue(self): 63 self.issue.add_to_labels(self.repo.get_label(self.labelName)) 64 65 def testRemoveLabelFromIssue(self): 66 self.issue.remove_from_labels(self.repo.get_label(self.labelName)) 67 68 def testSetIssueLabels(self): 69 self.issue.set_labels( 70 self.repo.get_label("Bug"), 71 self.repo.get_label("RequestedByUser"), 72 self.repo.get_label(self.labelName), 73 ) 74 75 def testIssueLabels(self): 76 self.assertListKeyEqual( 77 self.issue.labels, 78 lambda l: l.name, 79 ["Bug", self.labelName, "RequestedByUser"], 80 ) 81 82 def testIssueGetLabels(self): 83 self.assertListKeyEqual( 84 self.issue.get_labels(), 85 lambda l: l.name, 86 ["Bug", self.labelName, "RequestedByUser"], 87 ) 88 89 def testGetIssuesWithLabel(self): 90 self.assertListKeyEqual( 91 self.repo.get_issues(labels=[self.repo.get_label(self.labelName)]), 92 lambda i: i.number, 93 [52, 50], 94 ) 95 96 def testCreateIssueWithLabel(self): 97 issue = self.repo.create_issue( 98 "Issue created by PyGithub to test issue #50", 99 labels=[self.repo.get_label(self.labelName)], 100 ) 101 self.assertListKeyEqual(issue.labels, lambda l: l.name, [self.labelName]) 102 self.assertEqual(issue.number, 52)