Revision: 6794
Author: cosoleto
Date: 2009-05-02 16:57:24 +0000 (Sat, 02 May 2009)
Log Message:
-----------
Moved wiktionarytest.py to tests directory and modified to use test_utils module.
Added Paths:
-----------
trunk/pywikipedia/tests/test_wiktionary.py
Removed Paths:
-------------
trunk/pywikipedia/wiktionarytest.py
Copied: trunk/pywikipedia/tests/test_wiktionary.py (from rev 6784, trunk/pywikipedia/wiktionarytest.py)
===================================================================
--- trunk/pywikipedia/tests/test_wiktionary.py (rev 0)
+++ trunk/pywikipedia/tests/test_wiktionary.py 2009-05-02 16:57:24 UTC (rev 6794)
@@ -0,0 +1,280 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+"""Unit tests for Wiktionary.py"""
+__version__ = '$Id$'
+
+import unittest
+import test_utils
+
+import wiktionary
+
+class KnownValues(unittest.TestCase):
+ knownValues = (
+ ('==English==', 'en', 2, 'lang'),
+ ('=={{en}}==', 'en', 2, 'lang'),
+ ('{{-en-}}', 'en', None, 'lang'),
+ ('===Noun===', 'noun', 3, 'pos'),
+ ('==={{noun}}===', 'noun', 3, 'pos'),
+ ('{{-noun-}}', 'noun', None, 'pos'),
+ ('===Verb===', 'verb', 3, 'pos'),
+ ('==={{verb}}===', 'verb', 3, 'pos'),
+ ('{{-verb-}}', 'verb', None, 'pos'),
+ ('====Translations====', 'trans', 4, 'other'),
+ ('===={{trans}}====', 'trans', 4, 'other'),
+ ('{{-trans-}}', 'trans', None, 'other'),
+ )
+
+ def testHeaderInitKnownValuesContents(self):
+ """Header parsing comparing known result with known input for contents"""
+ for wikiline, contents, level, type in self.knownValues:
+ result = wiktionary.Header(wikiline).contents
+ self.assertEqual(contents, result)
+
+ def testHeaderInitKnownValuesLevel(self):
+ """Header parsing comparing known result with known input for level"""
+ for wikiline, contents, level, type in self.knownValues:
+ result = wiktionary.Header(wikiline).level
+ self.assertEqual(level, result)
+
+ def testHeaderInitKnownValuesType(self):
+ """Header parsing comparing known result with known input for type"""
+ for wikiline, contents, level, type in self.knownValues:
+ result = wiktionary.Header(wikiline).type
+ self.assertEqual(type, result)
+
+
+class SortEntriesCheckSortOrder(unittest.TestCase):
+ """Entries should be sorted as follows on a page: Translingual first, Wikilang next, then the others alphabetically on the language name in the Wiktionary's language """
+ def testHeaderInitKnownValuesType(self):
+ """Sorting order of Entries on a page"""
+ examples=((('en','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
+ ['translingual', 'en', 'nl', 'eo', 'fr', 'de', 'es']),
+ (('nl','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
+ ['translingual', 'nl', 'de', 'en', 'eo', 'fr', 'es']),
+ (('fr','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
+ ['translingual', 'fr', 'de', 'en', 'es', 'eo', 'nl']),
+ (('de','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
+ ['translingual', 'de', 'en', 'eo', 'fr', 'nl', 'es']),
+ )
+ for example in examples:
+ page = wiktionary.WiktionaryPage(example[0][0], example[0][1])
+ for lang in example[1]:
+ entry = wiktionary.Entry(lang)
+ page.addEntry(entry)
+ page.sortEntries()
+ self.assertEqual(page.sortedentries, example[2])
+
+class TestKnownValuesInParser(unittest.TestCase):
+ """This class will check various aspects of parsing Wiktionary entries into our object model"""
+ knownvalues=({'wikilang': 'en', 'term': 'nut', 'wikiformat': u"""==English==
+===Etymology===
+From Middle English [[nute]], from Old English [[hnutu]]. <!-- Is Latin [[nux]], nuc- a cognate? -->
+===Pronunciation===
+*[[w:AHD|AHD]]: nÅt
+*[[w:IPA|IPA]]: /nÊt/
+*[[w:SAMPA|SAMPA]]: /nVt/
+===Noun===
+'''nut''' (''plural'' '''[[nuts]]''')
+
+#A hard-shelled seed.
+#A piece of metal, often [[hexagonal]], with a hole through it with internal threading intended to fit on to a bolt.
+#(''informal'') An insane person.
+#(''slang'') The head.
+#(''slang; rarely used in the singular'') A testicle.
+
+====Synonyms====
+*(''insane person''): [[loony]], [[nutcase]], [[nutter]]
+*(''the head''): [[bonce]], [[noddle]] (See further synonyms under [[head]])
+*(''a testicle''): [[ball]], [[bollock]] (''taboo slang''), [[nad]]
+
+====Translations====
+
+'''seed'''
+{{top}}
+<!--Put translations for languages from A to I here-->
+*Dutch: [[noot]] ''f''
+*French: ''no generic translation exists''; [[noix]] ''f'' ''is often used, but this actually means "[[walnut]]"''
+*German: [[Nuss]] ''f''
+*German: [[Nuss]] ''f''
+*Italian: [[noce]] {{f}}
+{{mid}}
+<!--Put translations for languages from J to Z here-->
+*Latin: [[nux]]
+{{bottom}}
+
+'''that fits on a bolt'''
+{{top}}
+<!--Put translations for languages from A to I here-->
+*Dutch: [[moer]] ''f''
+*French: [[écrou]] ''m''
+*German: [[Mutter]] ''f''
+*Italian: [[dado]] {{m}}
+{{mid}}
+<!--Put translations for languages from J to Z here-->
+{{bottom}}
+
+'''informal: insane person'''
+{{top}}
+<!--Put translations for languages from A to I here-->
+*Dutch: [[gek]] ''m'', [[gekkin]] ''f'', [[zot]] ''m'', [[zottin]] ''f''
+*French: [[fou]] ''m'', [[folle]] ''f''
+*German: [[Irre]] ''m/f'', [[Irrer]] ''m indef.''
+{{mid}}
+<!--Put translations for languages from J to Z here-->
+{{bottom}}
+
+'''slang: the head'''
+{{top}}
+<!--Put translations for languages from A to I here-->
+*German: [[Birne]] ''f'', [[Rübe]] ''f'', [[Dötz]] ''m''
+{{mid}}
+<!--Put translations for languages from J to Z here-->
+{{bottom}}
+
+'''slang: testicle'''
+{{top}}
+<!--Put translations for languages from A to I here-->
+*Dutch: [[noten]] ''m (plural)'' <!--Never heard this before-->, [[bal]] ''m'', [[teelbal]] ''m''
+*French: [[couille]] ''f''
+*German: [[Ei]] ''n'', ''lately:'' [[Nuss]] ''f''
+{{mid}}
+<!--Put translations for languages from J to Z here-->
+*Spanish: [[cojone]], [[huevo]]
+{{bottom}}
+
+=====Translations to be checked=====
+<!--Remove this section once all of the translations below have been moved into the tables above.-->
+{{checktrans}}
+The translations below need to be checked by native speakers and inserted into the appropriate table(s) above, removing any numbers. Any numbering associating translations with definitions is unreliable.
+
+*[[Anglo-Saxon]]: [[hnutu]] ''f''
+*Breton: [[kraoñ]] ''collective noun'' [[kraoñenn]] ''singular f'' (1), [[kraouenn]] ''f'' -où ''pl'' (2), [[brizh-sod]] (3), [[kell]] ''f'' divgell ''pl'' (4)
+*Finnish: [[pähkinä]] (1), [[mutteri]] (2), [[hullu]] (3), [[pöpi]] (3), [[muna#Finnish|muna]] (4), [[palli]] (4), [[kaali]] (5)
+*Interlingua: [[nuce]] (1); [[matre vite]] (2); [[folle]] (3); [[teste]] (4), [[testiculo]] (4)
+*Italian: [[noce]] ''f''
+*Latvian: [[rieksts]] ''m'' (1), [[uzgrieznis]] ''m'' (2), [[trakais]] ''m'' (3), [[jucis]] ''m'' (3), [[pauts]] ''m'' (usually ''pl. - pauti'') (4)
+*Polish: [[orzech]] ''m'' (1), [[nakrÄtka]] ''f'' (2), [[Åwir]] ''m'' (3)
+*Portuguese: [[noz]] ''f'' (1); [[porca]] ''f'' (2); [[louco]] ''m'' (3), [[doido]] ''m'' (3), [[maluco]] ''m'' (3); [[bago]] ''m'' (4), [[ovo]] ''m'' (4)
+*Romanian: [[nucÄ]] ''f'' (1), [[piuliÅ£Ä]] ''f'' (2), [[nebun]] ''m'' (3) [[Å£icnit]] ''m'' (3)
+*Russian: [[оÑеÑ
]] ''m'' (1), [[гайка]] (gaika/gajka) ''f'' (2), [[ÑÑмаÑÑедÑий]] (sumasshedshij) ''m'' / [[ÑÑмаÑÑедÑаÑ]] (sumasshedshaya) ''f'' (3), [[ÑйÑо]] (yaitso) ''n'' (4)
+*Spanish: [[nuez]] (1), [[tuerca]] (2), [[chiflado]] (3), [[chalado]] (3)
+*[[Tok Pisin]]: [[nat]] (2), [[longlongman]] (3), [[kiau]] (4), [[het]] (5)
+
+====Related terms====
+*[[coconut]]
+*[[groundnut]]
+*[[hazelnut]]
+*[[peanut]]
+*[[walnut]]
+*[[nutbeam]]
+*[[nutcase]]
+*[[nutmeg]]
+*[[NutRageous]]®
+*[[nutshell]]
+
+===Transitive verb===
+'''to nut''' ('''nutting''', '''nutted''')
+
+#(''slang'') To hit deliberately with the head; to [[headbutt]].
+
+===Intransitive verb===
+'''to nut''' ('''nutting''', '''nutted''')
+
+#(''slang'') To [[ejaculate]] (''semen'').
+
+----
+==Dutch==
+===Noun===
+'''nut''' ''n''
+
+# [[use]], [[benefit]]
+
+[[io:nut]]
+[[la:nut]]
+
+[[Category:1000 English basic words]]
+[[Category:Colors]]
+[[Category:Browns]]
+[[Category:Trees]]
+[[category:Foods]]
+""",
+ 'internalrep':
+ (
+ [u'1000 English basic words',u'Colors',u'Browns',u'Trees',u'Foods'],
+ [u'io','la'],
+ {u'en':
+ [u'nut', None, u'nuts',
+ [{'definition': u'A hard-shelled seed', 'concisedef': u'seed',
+ 'trans': {'nl': u"[[noot]] ''f''", 'fr': u"""''no generic translation exists''; [[noix]] ''f'' ''is often used, but this actually means "[[walnut]]"''""", 'de': u"[[Nuss]] ''f''", 'it': u"[[noce]] {{f}}", 'la': u"[[nux]]"}},
+ {'definition': u"A piece of metal, often [[hexagonal]], with a hole through it with internal threading intended to fit on to a bolt.", 'concisedef': u'that fits on a bolt',
+ 'trans': {'nl': u"[[moer]] ''f''", 'fr': u"[[écrou]] ''m''", 'de': u"[[Mutter]] ''f''", 'it': u"[[dado]] {{m}}"}},
+ {'definition': u"(''informal'') An insane person.", 'concisedef': u"'''informal: insane person'''",
+ 'syns': u"[[loony]], [[nutcase]], [[nutter]]",
+ 'trans': {'nl': u"[[gek]] ''m'', [[gekkin]] ''f'', [[zot]] ''m'', [[zottin]] ''f''", 'fr': "[[fou]] ''m'', [[folle]] ''f''", 'de': "[[Irre]] ''m/f'', [[Irrer]] ''m indef.''"}},
+ {'definition': u"(''slang'') The head.", 'concisedef': u"'''slang: the head'''",
+ 'syns': u"[[bonce]], [[noddle]] (See further synonyms under [[head]])",
+ 'trans': {'de': u"[[Birne]] ''f'', [[Rübe]] ''f'', [[Dötz]] ''m''"}},
+ {'definition': u"(''slang; rarely used in the singular'') A testicle.", 'concisedef': u"'''slang: testicle'''",
+ 'syns': u"[[ball]], [[bollock]] (''taboo slang''), [[nad]]",
+ 'trans': {'nl': u"[[noten]] ''m (plural)'' <!--Never heard this before-->, [[bal]] ''m'', [[teelbal]] ''m''", 'fr': u"[[couille]] ''f''", 'de': u"[[Ei]] ''n'', ''lately:'' [[Nuss]] ''f''", 'es': u"[[cojone]], [[huevo]]"}},
+ ],
+ ],
+ u'nl':
+ [u'nut', 'n', None,
+ [{'definition': u'[[use]], [[benefit]]'}]
+ ],
+ }
+ )
+ },{'wikilang': 'en', 'term': 'nut', 'wikiformat': u"""[[category:Foods]]
+[[category:Drinks]]""", 'internalrep': ([u'Foods', u'Drinks'],[],{})})
+
+ def testWhetherCategoriesAreParsedProperly(self):
+ """Test whether Categories are parsed properly"""
+ for value in self.knownvalues:
+ internalrepresentation=value['internalrep']
+ apage = wiktionary.WiktionaryPage(value['wikilang'],value['term'])
+ apage.parseWikiPage(value['wikiformat'])
+
+ self.assertEqual(apage.categories, internalrepresentation[0])
+
+ def testWhetherLinksAreParsedProperly(self):
+ """Test whether Links are parsed properly"""
+ for value in self.knownvalues:
+ internalrepresentation=value['internalrep']
+ apage = wiktionary.WiktionaryPage(value['wikilang'],value['term'])
+ apage.parseWikiPage(value['wikiformat'])
+
+ self.assertEqual(apage.interwikilinks, internalrepresentation[1])
+
+ def testWhetherDefsAreParsedProperly(self):
+ """Test whether Definitions are parsed properly"""
+ for value in self.knownvalues:
+ internalrepresentation=value['internalrep'][2]
+ apage = wiktionary.WiktionaryPage(value['wikilang'],value['term'])
+ apage.parseWikiPage(value['wikiformat'])
+ for entrylang in internalrepresentation.keys():
+ term=internalrepresentation[entrylang][0]
+ gender=internalrepresentation[entrylang][1]
+ plural=internalrepresentation[entrylang][2]
+ definitions=internalrepresentation[entrylang][3]
+ refdefs=[]
+ for definition in definitions:
+ refdefs.append(definition['definition'])
+
+ resultmeanings=[]
+ for key in apage.entries[entrylang].meanings.keys():
+ for resultmeaning in apage.entries[entrylang].meanings[key]:
+ resultmeanings.append(resultmeaning.definition)
+
+ self.assertEqual(resultmeanings.sort(), refdefs.sort())
+
+'''
+class ToRomanBadInput(unittest.TestCase):
+ def testTooLarge(self):
+ """toRoman should fail with large input"""
+ self.assertRaises(roman.OutOfRangeError, roman.toRoman, 4000)
+'''
+
+if __name__ == "__main__":
+ unittest.main()
\ No newline at end of file
Deleted: trunk/pywikipedia/wiktionarytest.py
===================================================================
--- trunk/pywikipedia/wiktionarytest.py 2009-05-02 16:52:09 UTC (rev 6793)
+++ trunk/pywikipedia/wiktionarytest.py 2009-05-02 16:57:24 UTC (rev 6794)
@@ -1,278 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-"""Unit tests for Wiktionary.py"""
-__version__ = '$Id$'
-
-import wiktionary
-import unittest
-
-class KnownValues(unittest.TestCase):
- knownValues = (
- ('==English==', 'en', 2, 'lang'),
- ('=={{en}}==', 'en', 2, 'lang'),
- ('{{-en-}}', 'en', None, 'lang'),
- ('===Noun===', 'noun', 3, 'pos'),
- ('==={{noun}}===', 'noun', 3, 'pos'),
- ('{{-noun-}}', 'noun', None, 'pos'),
- ('===Verb===', 'verb', 3, 'pos'),
- ('==={{verb}}===', 'verb', 3, 'pos'),
- ('{{-verb-}}', 'verb', None, 'pos'),
- ('====Translations====', 'trans', 4, 'other'),
- ('===={{trans}}====', 'trans', 4, 'other'),
- ('{{-trans-}}', 'trans', None, 'other'),
- )
-
- def testHeaderInitKnownValuesContents(self):
- """Header parsing comparing known result with known input for contents"""
- for wikiline, contents, level, type in self.knownValues:
- result = wiktionary.Header(wikiline).contents
- self.assertEqual(contents, result)
-
- def testHeaderInitKnownValuesLevel(self):
- """Header parsing comparing known result with known input for level"""
- for wikiline, contents, level, type in self.knownValues:
- result = wiktionary.Header(wikiline).level
- self.assertEqual(level, result)
-
- def testHeaderInitKnownValuesType(self):
- """Header parsing comparing known result with known input for type"""
- for wikiline, contents, level, type in self.knownValues:
- result = wiktionary.Header(wikiline).type
- self.assertEqual(type, result)
-
-
-class SortEntriesCheckSortOrder(unittest.TestCase):
- """Entries should be sorted as follows on a page: Translingual first, Wikilang next, then the others alphabetically on the language name in the Wiktionary's language """
- def testHeaderInitKnownValuesType(self):
- """Sorting order of Entries on a page"""
- examples=((('en','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
- ['translingual', 'en', 'nl', 'eo', 'fr', 'de', 'es']),
- (('nl','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
- ['translingual', 'nl', 'de', 'en', 'eo', 'fr', 'es']),
- (('fr','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
- ['translingual', 'fr', 'de', 'en', 'es', 'eo', 'nl']),
- (('de','C'),('eo', 'en', 'de', 'nl', 'es', 'translingual', 'fr'),
- ['translingual', 'de', 'en', 'eo', 'fr', 'nl', 'es']),
- )
- for example in examples:
- page = wiktionary.WiktionaryPage(example[0][0], example[0][1])
- for lang in example[1]:
- entry = wiktionary.Entry(lang)
- page.addEntry(entry)
- page.sortEntries()
- self.assertEqual(page.sortedentries, example[2])
-
-class TestKnownValuesInParser(unittest.TestCase):
- """This class will check various aspects of parsing Wiktionary entries into our object model"""
- knownvalues=({'wikilang': 'en', 'term': 'nut', 'wikiformat': u"""==English==
-===Etymology===
-From Middle English [[nute]], from Old English [[hnutu]]. <!-- Is Latin [[nux]], nuc- a cognate? -->
-===Pronunciation===
-*[[w:AHD|AHD]]: nÅt
-*[[w:IPA|IPA]]: /nÊt/
-*[[w:SAMPA|SAMPA]]: /nVt/
-===Noun===
-'''nut''' (''plural'' '''[[nuts]]''')
-
-#A hard-shelled seed.
-#A piece of metal, often [[hexagonal]], with a hole through it with internal threading intended to fit on to a bolt.
-#(''informal'') An insane person.
-#(''slang'') The head.
-#(''slang; rarely used in the singular'') A testicle.
-
-====Synonyms====
-*(''insane person''): [[loony]], [[nutcase]], [[nutter]]
-*(''the head''): [[bonce]], [[noddle]] (See further synonyms under [[head]])
-*(''a testicle''): [[ball]], [[bollock]] (''taboo slang''), [[nad]]
-
-====Translations====
-
-'''seed'''
-{{top}}
-<!--Put translations for languages from A to I here-->
-*Dutch: [[noot]] ''f''
-*French: ''no generic translation exists''; [[noix]] ''f'' ''is often used, but this actually means "[[walnut]]"''
-*German: [[Nuss]] ''f''
-*German: [[Nuss]] ''f''
-*Italian: [[noce]] {{f}}
-{{mid}}
-<!--Put translations for languages from J to Z here-->
-*Latin: [[nux]]
-{{bottom}}
-
-'''that fits on a bolt'''
-{{top}}
-<!--Put translations for languages from A to I here-->
-*Dutch: [[moer]] ''f''
-*French: [[écrou]] ''m''
-*German: [[Mutter]] ''f''
-*Italian: [[dado]] {{m}}
-{{mid}}
-<!--Put translations for languages from J to Z here-->
-{{bottom}}
-
-'''informal: insane person'''
-{{top}}
-<!--Put translations for languages from A to I here-->
-*Dutch: [[gek]] ''m'', [[gekkin]] ''f'', [[zot]] ''m'', [[zottin]] ''f''
-*French: [[fou]] ''m'', [[folle]] ''f''
-*German: [[Irre]] ''m/f'', [[Irrer]] ''m indef.''
-{{mid}}
-<!--Put translations for languages from J to Z here-->
-{{bottom}}
-
-'''slang: the head'''
-{{top}}
-<!--Put translations for languages from A to I here-->
-*German: [[Birne]] ''f'', [[Rübe]] ''f'', [[Dötz]] ''m''
-{{mid}}
-<!--Put translations for languages from J to Z here-->
-{{bottom}}
-
-'''slang: testicle'''
-{{top}}
-<!--Put translations for languages from A to I here-->
-*Dutch: [[noten]] ''m (plural)'' <!--Never heard this before-->, [[bal]] ''m'', [[teelbal]] ''m''
-*French: [[couille]] ''f''
-*German: [[Ei]] ''n'', ''lately:'' [[Nuss]] ''f''
-{{mid}}
-<!--Put translations for languages from J to Z here-->
-*Spanish: [[cojone]], [[huevo]]
-{{bottom}}
-
-=====Translations to be checked=====
-<!--Remove this section once all of the translations below have been moved into the tables above.-->
-{{checktrans}}
-The translations below need to be checked by native speakers and inserted into the appropriate table(s) above, removing any numbers. Any numbering associating translations with definitions is unreliable.
-
-*[[Anglo-Saxon]]: [[hnutu]] ''f''
-*Breton: [[kraoñ]] ''collective noun'' [[kraoñenn]] ''singular f'' (1), [[kraouenn]] ''f'' -où ''pl'' (2), [[brizh-sod]] (3), [[kell]] ''f'' divgell ''pl'' (4)
-*Finnish: [[pähkinä]] (1), [[mutteri]] (2), [[hullu]] (3), [[pöpi]] (3), [[muna#Finnish|muna]] (4), [[palli]] (4), [[kaali]] (5)
-*Interlingua: [[nuce]] (1); [[matre vite]] (2); [[folle]] (3); [[teste]] (4), [[testiculo]] (4)
-*Italian: [[noce]] ''f''
-*Latvian: [[rieksts]] ''m'' (1), [[uzgrieznis]] ''m'' (2), [[trakais]] ''m'' (3), [[jucis]] ''m'' (3), [[pauts]] ''m'' (usually ''pl. - pauti'') (4)
-*Polish: [[orzech]] ''m'' (1), [[nakrÄtka]] ''f'' (2), [[Åwir]] ''m'' (3)
-*Portuguese: [[noz]] ''f'' (1); [[porca]] ''f'' (2); [[louco]] ''m'' (3), [[doido]] ''m'' (3), [[maluco]] ''m'' (3); [[bago]] ''m'' (4), [[ovo]] ''m'' (4)
-*Romanian: [[nucÄ]] ''f'' (1), [[piuliÅ£Ä]] ''f'' (2), [[nebun]] ''m'' (3) [[Å£icnit]] ''m'' (3)
-*Russian: [[оÑеÑ
]] ''m'' (1), [[гайка]] (gaika/gajka) ''f'' (2), [[ÑÑмаÑÑедÑий]] (sumasshedshij) ''m'' / [[ÑÑмаÑÑедÑаÑ]] (sumasshedshaya) ''f'' (3), [[ÑйÑо]] (yaitso) ''n'' (4)
-*Spanish: [[nuez]] (1), [[tuerca]] (2), [[chiflado]] (3), [[chalado]] (3)
-*[[Tok Pisin]]: [[nat]] (2), [[longlongman]] (3), [[kiau]] (4), [[het]] (5)
-
-====Related terms====
-*[[coconut]]
-*[[groundnut]]
-*[[hazelnut]]
-*[[peanut]]
-*[[walnut]]
-*[[nutbeam]]
-*[[nutcase]]
-*[[nutmeg]]
-*[[NutRageous]]®
-*[[nutshell]]
-
-===Transitive verb===
-'''to nut''' ('''nutting''', '''nutted''')
-
-#(''slang'') To hit deliberately with the head; to [[headbutt]].
-
-===Intransitive verb===
-'''to nut''' ('''nutting''', '''nutted''')
-
-#(''slang'') To [[ejaculate]] (''semen'').
-
-----
-==Dutch==
-===Noun===
-'''nut''' ''n''
-
-# [[use]], [[benefit]]
-
-[[io:nut]]
-[[la:nut]]
-
-[[Category:1000 English basic words]]
-[[Category:Colors]]
-[[Category:Browns]]
-[[Category:Trees]]
-[[category:Foods]]
-""",
- 'internalrep':
- (
- [u'1000 English basic words',u'Colors',u'Browns',u'Trees',u'Foods'],
- [u'io','la'],
- {u'en':
- [u'nut', None, u'nuts',
- [{'definition': u'A hard-shelled seed', 'concisedef': u'seed',
- 'trans': {'nl': u"[[noot]] ''f''", 'fr': u"""''no generic translation exists''; [[noix]] ''f'' ''is often used, but this actually means "[[walnut]]"''""", 'de': u"[[Nuss]] ''f''", 'it': u"[[noce]] {{f}}", 'la': u"[[nux]]"}},
- {'definition': u"A piece of metal, often [[hexagonal]], with a hole through it with internal threading intended to fit on to a bolt.", 'concisedef': u'that fits on a bolt',
- 'trans': {'nl': u"[[moer]] ''f''", 'fr': u"[[écrou]] ''m''", 'de': u"[[Mutter]] ''f''", 'it': u"[[dado]] {{m}}"}},
- {'definition': u"(''informal'') An insane person.", 'concisedef': u"'''informal: insane person'''",
- 'syns': u"[[loony]], [[nutcase]], [[nutter]]",
- 'trans': {'nl': u"[[gek]] ''m'', [[gekkin]] ''f'', [[zot]] ''m'', [[zottin]] ''f''", 'fr': "[[fou]] ''m'', [[folle]] ''f''", 'de': "[[Irre]] ''m/f'', [[Irrer]] ''m indef.''"}},
- {'definition': u"(''slang'') The head.", 'concisedef': u"'''slang: the head'''",
- 'syns': u"[[bonce]], [[noddle]] (See further synonyms under [[head]])",
- 'trans': {'de': u"[[Birne]] ''f'', [[Rübe]] ''f'', [[Dötz]] ''m''"}},
- {'definition': u"(''slang; rarely used in the singular'') A testicle.", 'concisedef': u"'''slang: testicle'''",
- 'syns': u"[[ball]], [[bollock]] (''taboo slang''), [[nad]]",
- 'trans': {'nl': u"[[noten]] ''m (plural)'' <!--Never heard this before-->, [[bal]] ''m'', [[teelbal]] ''m''", 'fr': u"[[couille]] ''f''", 'de': u"[[Ei]] ''n'', ''lately:'' [[Nuss]] ''f''", 'es': u"[[cojone]], [[huevo]]"}},
- ],
- ],
- u'nl':
- [u'nut', 'n', None,
- [{'definition': u'[[use]], [[benefit]]'}]
- ],
- }
- )
- },{'wikilang': 'en', 'term': 'nut', 'wikiformat': u"""[[category:Foods]]
-[[category:Drinks]]""", 'internalrep': ([u'Foods', u'Drinks'],[],{})})
-
- def testWhetherCategoriesAreParsedProperly(self):
- """Test whether Categories are parsed properly"""
- for value in self.knownvalues:
- internalrepresentation=value['internalrep']
- apage = wiktionary.WiktionaryPage(value['wikilang'],value['term'])
- apage.parseWikiPage(value['wikiformat'])
-
- self.assertEqual(apage.categories, internalrepresentation[0])
-
- def testWhetherLinksAreParsedProperly(self):
- """Test whether Links are parsed properly"""
- for value in self.knownvalues:
- internalrepresentation=value['internalrep']
- apage = wiktionary.WiktionaryPage(value['wikilang'],value['term'])
- apage.parseWikiPage(value['wikiformat'])
-
- self.assertEqual(apage.interwikilinks, internalrepresentation[1])
-
- def testWhetherDefsAreParsedProperly(self):
- """Test whether Definitions are parsed properly"""
- for value in self.knownvalues:
- internalrepresentation=value['internalrep'][2]
- apage = wiktionary.WiktionaryPage(value['wikilang'],value['term'])
- apage.parseWikiPage(value['wikiformat'])
- for entrylang in internalrepresentation.keys():
- term=internalrepresentation[entrylang][0]
- gender=internalrepresentation[entrylang][1]
- plural=internalrepresentation[entrylang][2]
- definitions=internalrepresentation[entrylang][3]
- refdefs=[]
- for definition in definitions:
- refdefs.append(definition['definition'])
-
- resultmeanings=[]
- for key in apage.entries[entrylang].meanings.keys():
- for resultmeaning in apage.entries[entrylang].meanings[key]:
- resultmeanings.append(resultmeaning.definition)
-
- self.assertEqual(resultmeanings.sort(), refdefs.sort())
-
-'''
-class ToRomanBadInput(unittest.TestCase):
- def testTooLarge(self):
- """toRoman should fail with large input"""
- self.assertRaises(roman.OutOfRangeError, roman.toRoman, 4000)
-'''
-
-if __name__ == "__main__":
- unittest.main()
\ No newline at end of file