[ADD] long read testcases against fixed #10

This commit is contained in:
Benedek Racz 2019-11-14 18:22:16 +01:00
parent f9b6ee08a4
commit 73fa299475
2 changed files with 143 additions and 0 deletions

72
tests/long_printer.py Normal file
View File

@ -0,0 +1,72 @@
'''
This is is a very basic stdio handler script. This is used by python.py example.
'''
import time
puskas_wiki = ['''Ferenc Puskas was a Hungarian footballer and manager, widely regarded as one of \
the greatest players of all time. He is the son of former footballer Ferenc Puskas Senior. A \
prolific forward, he scored 84 goals in 85 international matches for Hungary, played 4 \
international matches for Spain and scored 514 goals in 529 matches in the Hungarian and Spanish \
leagues. He became an Olympic champion in 1952 and led his nation to the final of the 1954 World \
Cup where he was named the tournament's best player. He won three European Cups (1959, 1960, 1966),\
10 national championships (5 Hungarian and 5 Spanish Primera Division) and 8 top individual \
scoring honors. In 1995, he was recognized as the top scorer of the 20th century by the IFFHS.''',
'''Puskas started his career in Hungary playing for Kispest and Budapest Honved. He was the top scorer\
in the Hungarian League on four occasions, and in 1948, he was the top goal scorer in Europe. \
During the 1950s, he was both a prominent member and captain of the Hungarian national team, known\
as the Mighty Magyars. In 1958, two years after the Hungarian Revolution, he emigrated to Spain \
where he played for Real Madrid. While playing with Real Madrid, Puskas won four Pichichis and \
scored seven goals in two European Champions Cup finals.''',
'''After retiring as a player, he became a coach. The highlight of his coaching career came in 1971 \
when he guided Panathinaikos to the European Cup final, where they lost 2-0 to AFC Ajax. In 1993, \
he returned to Hungary and took temporary charge of the Hungarian national team. In 1998, he \
became one of the first ever FIFA/SOS Charity ambassadors. In 2002, the Nepstadion in Budapest \
was renamed the Puskas Ferenc Stadion in his honor. He was also declared the best Hungarian \
player of the last 50 years by the Hungarian Football Federation in the UEFA Jubilee Awards in \
November 2003. In October 2009, FIFA announced the introduction of the FIFA Puskas Award, \
awarded to the player who has scored the "most beautiful goal" over the past year. He was also \
listed in Pele's FIFA 100.''',
'''Ferenc Purczeld was born on 2 April 1927 to a German (Danube Swabian) family in Budapest and \
brought up in Kispest, then a suburb, today part of the city. His mother, Margit Biro \
(1904-1976), was a seamstress. He began his career as a junior with Kispest AC,[10] where his \
father, who had previously played for the club, was a coach. He had grandchildren, who were the \
children of his brothers son[clarification needed]; the two sons of his brother are Zoltan and \
Istvan, the first one have 3 children; Ilonka, Camila and Andres, and the second one have two.''',
'''He changed his name to Puskas. He initially used the pseudonym "Miklos Kovacs" to help \
circumvent the minimum age rules[12] before officially signing at the age of 12. Among his early \
teammates was his childhood friend and future international teammate Jozsef Bozsik. He made his \
first senior appearance for Kispest in November 1943 in a match against Nagyvaradi AC.[13] It was \
here where he got the nickname "Ocsi" or "Buddy".[14]''',
'''Kispest was taken over by the Hungarian Ministry of Defence in 1949, becoming the Hungarian Army \
team and changing its name to Budapest Honved. As a result, football players were given military \
ranks. Puskas eventually became a major (Hungarian: Ornagy), which led to the nickname "The \
Galloping Major".[15] As the army club, Honved used conscription to acquire the best Hungarian \
players, leading to the recruitment of Zoltan Czibor and Sandor Kocsis.[16] During his career at \
Budapest Honved, Puskas helped the club win five Hungarian League titles. He also finished as top \
goal scorer in the league in 1947-48, 1949-50, 1950 and 1953, scoring 50, 31, 25 and 27 goals, \
respectively. In 1948, he was the top goal scorer in Europe.[17]''' ]
def main():
print('Welcome!')
while True:
print('puskas> ', end='')
num = input()
if num == 'exit':
break
if num == 'all':
print('\r\n'.join(puskas_wiki))
continue
try:
if int(num) in range(len(puskas_wiki)):
print(puskas_wiki[int(num)])
continue
except:
pass
print('unknown command')
if __name__ == '__main__':
main()

71
tests/test_long.py Normal file
View File

@ -0,0 +1,71 @@
#!/usr/bin/env python
'''
PEXPECT LICENSE
This license is approved by the OSI and FSF as GPL-compatible.
http://opensource.org/licenses/isc-license.txt
Copyright (c) 2012, Noah Spurrier <noah@noah.org>
PERMISSION TO USE, COPY, MODIFY, AND/OR DISTRIBUTE THIS SOFTWARE FOR ANY
PURPOSE WITH OR WITHOUT FEE IS HEREBY GRANTED, PROVIDED THAT THE ABOVE
COPYRIGHT NOTICE AND THIS PERMISSION NOTICE APPEAR IN ALL COPIES.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
'''
import wexpect
import unittest
import sys
import os
from . import PexpectTestCase
from . import long_printer
puskas_wiki = long_printer.puskas_wiki
class TestCaseLong(PexpectTestCase.PexpectTestCase):
def test_long (self):
here = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, here)
# With quotes (C:\Program Files\Python37\python.exe needs quotes)
python_executable = '"' + sys.executable + '" '
child_script = here + '\\long_printer.py'
longPrinter = python_executable + ' ' + child_script
prompt = 'puskas> '
# Start the child process
p = wexpect.spawn(longPrinter)
# Wait for prompt
p.expect(prompt)
for i in range(10):
p.sendline('0')
p.expect(prompt)
self.assertEqual(p.before.splitlines()[1], puskas_wiki[0])
p.sendline('all')
p.expect(prompt)
for a,b in zip(p.before.splitlines()[1:], puskas_wiki):
self.assertEqual(a, b)
for j, paragraph in enumerate(puskas_wiki):
p.sendline(str(j))
p.expect(prompt)
self.assertEqual(p.before.splitlines()[1], paragraph)
if __name__ == '__main__':
unittest.main()
suite = unittest.makeSuite(TestCaseLong,'test')