Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion seatsio/charts/chartsClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from seatsio.reports.charts.chartReports import ChartReports
from seatsio.charts.chartsRequest import ChartRequest
from seatsio.domain import Chart, ChartValidation, Category
from seatsio.domain import Chart, ChartValidation, Category, event_from_json
from seatsio.pagination.listableObjectsClient import ListableObjectsClient
from seatsio.pagination.lister import Lister
from seatsio.pagination.pageFetcher import PageFetcher
Expand Down Expand Up @@ -103,6 +103,9 @@ def update_category(self, chart_key, category_key, label, color, accessible):
category_key=category_key) \
.post(UpdateCategoryRequest(label, color, accessible))

def events(self, chart_key):
return Lister(PageFetcher(event_from_json, self.http_client, "/charts/{key}/events", key=chart_key))

def move_to_archive(self, chart_key):
self.http_client.url("/charts/{key}/actions/move-to-archive", key=chart_key).post()

Expand Down
31 changes: 31 additions & 0 deletions tests/charts/testListEventsOfChart.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
from tests.seatsioClientTest import SeatsioClientTest
from tests.util.asserts import assert_that


class ListEventsOfChartTest(SeatsioClientTest):

def test_all(self):
chart = self.client.charts.create()
other_chart = self.client.charts.create()
event1 = self.client.events.create(chart.key)
self.client.events.create(other_chart.key)
event2 = self.client.events.create(chart.key)
event3 = self.client.events.create(chart.key)

events = self.client.charts.events(chart.key).list()

assert_that(events).extracting("key").contains_exactly(event3.key, event2.key, event1.key)

def test_pages(self):
chart = self.client.charts.create()
event1 = self.client.events.create(chart.key)
event2 = self.client.events.create(chart.key)
event3 = self.client.events.create(chart.key)

first_page = self.client.charts.events(chart.key).first_page(page_size=2)
page_after = self.client.charts.events(chart.key).page_after(first_page.next_page_starts_after, page_size=2)

assert_that(first_page.items).extracting("id").contains_exactly(event3.id, event2.id)
assert_that(first_page.next_page_starts_after).is_equal_to(event2.id)
assert_that(page_after.items).extracting("id").contains_exactly(event1.id)
assert_that(page_after.next_page_starts_after).is_none()
Loading