nephila / python-taiga

:evergreen_tree: Python module for communicating with the Taiga API
https://python-taiga.readthedocs.io
MIT License
94 stars 41 forks source link

Problem Retrieving Project by id #182

Open philippcheung opened 2 months ago

philippcheung commented 2 months ago

Description

I'm new to python-taiga and taiga in general, so it might just be the way I created the project.

project = self.api.projects.get(11)

gives error:

cls = <class 'taiga.models.models.SwimLanes'>, requester = <taiga.requestmaker.RequestMaker object at 0x7f6f03dd20b0>, entries = None

@classmethod
def parse(cls, requester, entries):
    """Parse a JSON array into a list of model instances."""
    result_entries = SearchableList()
  for entry in entries:

E TypeError: 'NoneType' object is not iterable

/root/.cache/pypoetry/virtualenvs/shadowstreamserver-9TtSrW0h-py3.10/lib/python3.10/site-packages/taiga/models/base.py:107: TypeError

Steps to reproduce

Step 1) Create a new project in GUI (barebone project, nothing extra) Step 2) write pytest unit test to retrieve project

project = self.api.projects.get(11)

/root/.cache/pypoetry/virtualenvs/shadowstreamserver-9TtSrW0h-py3.10/lib/python3.10/site-packages/taiga/models/base.py:93: in get return self.instance.parse(self.requester, response.json()) /root/.cache/pypoetry/virtualenvs/shadowstreamserver-9TtSrW0h-py3.10/lib/python3.10/site-packages/taiga/models/base.py:199: in parse entry[key_to_parse] = cls_to_parse.parse(requester, entry[key_to_parse])


cls = <class 'taiga.models.models.SwimLanes'>, requester = <taiga.requestmaker.RequestMaker object at 0x7f6f03dd20b0>, entries = None

@classmethod
def parse(cls, requester, entries):
    """Parse a JSON array into a list of model instances."""
    result_entries = SearchableList()
  for entry in entries:

E TypeError: 'NoneType' object is not iterable

/root/.cache/pypoetry/virtualenvs/shadowstreamserver-9TtSrW0h-py3.10/lib/python3.10/site-packages/taiga/models/base.py:107: TypeError

Versions

Python 3.10.14 Taiga -- using latest taiga docker (https://github.com/taigaio/taiga-docker.git, Stable Branch, Tag 6.0.0) django version inside docker - 3.2.19

Expected behaviour

Project object to come back without error

Actual behaviour

Exception thrown :E TypeError: 'NoneType' object is not iterable

Additional information

Please feel to reach out to me with any information -- for now, I'm just going to add project_extra_information to the project_extra_info UserStories allowed params so I can get the project name easily -- versus loading the object and getting the name like I was planning on.

PeterSurda commented 1 month ago

Also happens when creating a new project. Appears to do with parsing swimlanes. If you modify the code to skip parsing swimlanes, it seems to work ok. Maybe it can't handle a situation where there are no swimlanes, or maybe the swimlane schema changed.