Ticket #55: paginator_tests.py

File paginator_tests.py, 1.5 KB (added by Ben Sturmfels, 8 years ago)

Copy of sidthekid's prototype tests, just so we don't lose the Pastebin content.

Line 
1import pytest
2
3from mediagoblin.tools import pagination
4
5#the next 30 lines for the db cursor handle
6from sqlalchemy import Column,Integer
7from sqlalchemy.ext.declarative import declarative_base
8from sqlalchemy.orm import relationship
9from sqlalchemy import create_engine
10from sqlalchemy.orm import sessionmaker
11
12Base=declarative_base()
13
14class Example(Base):
15 __tablename__="example"
16 id = Column(Integer,primary_key=True)
17 testVar = Column(Integer,nullable=False)
18
19engine = create_engine('sqlite:///sqlalchemyExample.db')
20Base.metadata.create_all(engine)
21
22DBSession = sessionmaker(bind=engine)
23session = DBSession()
24
25obj1 = Example(testVar=1)
26obj2 = Example(testVar=2)
27obj3 = Example(testVar=3)
28obj4 = Example(testVar=4)
29obj5 = Example(testVar=5)
30session.add(obj1)
31session.add(obj2)
32session.add(obj3)
33session.add(obj4)
34session.add(obj5)
35session.commit()
36#all this just for one db cursor handle :O
37
38
39class TestPagination:
40 cur = session.query(Example)
41 paginator = pagination.Pagination(page=3,cursor=cur,per_page=3)
42 def test_get_page_url_explicit(self):
43 base_url = "www.google.com/"
44 get_params = {'query1':'hello','query2':'goodbye'}
45 page_no = 4
46 assert self.paginator.get_page_url_explicit(base_url, get_params, page_no) == "www.google.com/?query2=goodbye&query1=hello&page=4"
47
48 def test_properties(self):
49 assert self.paginator.total_count == 5
50 assert self.paginator.pages == 2
51
52
53session.expunge_all()
54session.commit()
55session.close()
56Base.metadata.drop_all(engine)