/ tests / ProjectColumn.py
ProjectColumn.py
  1  # ########################## Copyrights and license ############################
  2  #                                                                              #
  3  # This file is part of PyGithub.                                               #
  4  # http://pygithub.github.io/PyGithub/v1/index.html                             #
  5  #                                                                              #
  6  # PyGithub is free software: you can redistribute it and/or modify it under    #
  7  # the terms of the GNU Lesser General Public License as published by the Free  #
  8  # Software Foundation, either version 3 of the License, or (at your option)    #
  9  # any later version.                                                           #
 10  #                                                                              #
 11  # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY  #
 12  # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    #
 13  # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #
 14  # details.                                                                     #
 15  #                                                                              #
 16  # You should have received a copy of the GNU Lesser General Public License     #
 17  # along with PyGithub. If not, see <http://www.gnu.org/licenses/>.             #
 18  #                                                                              #
 19  # ##############################################################################
 20  
 21  from datetime import datetime, timezone
 22  
 23  from . import Framework
 24  
 25  
 26  class ProjectColumn(Framework.TestCase):
 27      def setUp(self):
 28          super().setUp()
 29          self.get_project_column = self.g.get_project_column(8700460)
 30          self.move_project_column = self.g.get_project_column(8748065)
 31  
 32      def testGetProjectColumn(self):
 33          self.assertEqual(self.get_project_column.id, 8700460)
 34          self.assertEqual(self.get_project_column.name, "c1")
 35          self.assertEqual(
 36              self.get_project_column.cards_url,
 37              "https://api.github.com/projects/columns/8700460/cards",
 38          )
 39          self.assertEqual(self.get_project_column.node_id, "MDEzOlByb2plY3RDb2x1bW44NzAwNDYw")
 40          self.assertEqual(
 41              self.get_project_column.project_url,
 42              "https://api.github.com/projects/4294766",
 43          )
 44          self.assertEqual(
 45              self.get_project_column.url,
 46              "https://api.github.com/projects/columns/8700460",
 47          )
 48          self.assertEqual(
 49              self.get_project_column.created_at,
 50              datetime(2020, 4, 13, 20, 29, 53, tzinfo=timezone.utc),
 51          )
 52          self.assertEqual(
 53              self.get_project_column.updated_at,
 54              datetime(2020, 4, 14, 18, 9, 38, tzinfo=timezone.utc),
 55          )
 56  
 57      def testGetAllCards(self):
 58          cards = self.get_project_column.get_cards(archived_state="all")
 59          self.assertEqual(cards.totalCount, 3)
 60          self.assertEqual(cards[0].id, 36285184)
 61          self.assertEqual(cards[0].note, "Note3")
 62          self.assertEqual(cards[1].id, 36281526)
 63          self.assertEqual(cards[1].note, "Note2")
 64          self.assertEqual(cards[2].id, 36281516)
 65          self.assertEqual(cards[2].note, "Note1")
 66  
 67      def testGetArchivedCards(self):
 68          cards = self.get_project_column.get_cards(archived_state="archived")
 69          self.assertEqual(cards.totalCount, 1)
 70          self.assertEqual(cards[0].id, 36281516)
 71          self.assertEqual(cards[0].note, "Note1")
 72  
 73      def testGetNotArchivedCards(self):
 74          cards = self.get_project_column.get_cards(archived_state="not_archived")
 75          self.assertEqual(cards.totalCount, 2)
 76          self.assertEqual(cards[0].id, 36285184)
 77          self.assertEqual(cards[0].note, "Note3")
 78          self.assertEqual(cards[1].id, 36281526)
 79          self.assertEqual(cards[1].note, "Note2")
 80  
 81      def testGetCards(self):
 82          cards = self.get_project_column.get_cards()
 83          self.assertEqual(cards.totalCount, 2)
 84          self.assertEqual(cards[0].id, 36285184)
 85          self.assertEqual(cards[0].note, "Note3")
 86          self.assertEqual(cards[1].id, 36281526)
 87          self.assertEqual(cards[1].note, "Note2")
 88  
 89      def testCreateCard(self):
 90          new_card = self.get_project_column.create_card(note="NewCard")
 91          self.assertEqual(new_card.id, 36290228)
 92          self.assertEqual(new_card.note, "NewCard")
 93  
 94      def testDelete(self):
 95          project_column = self.g.get_project_column(8747987)
 96          self.assertTrue(project_column.delete())
 97  
 98      def testEdit(self):
 99          self.move_project_column.edit("newTestColumn")
100          self.assertEqual(self.move_project_column.id, 8748065)
101          self.assertEqual(self.move_project_column.name, "newTestColumn")
102  
103      def testMoveFirst(self):
104          self.assertTrue(self.move_project_column.move(position="first"))
105  
106      def testMoveLast(self):
107          self.assertTrue(self.move_project_column.move(position="last"))
108  
109      def testMoveAfter(self):
110          self.assertTrue(self.move_project_column.move(position="after:8700460"))