def testQuestionWithoutListTags(): q = AnkiQuestion("Capital of dublin") q.addAnswer("Dublin 1") q.addAnswer("Dublin 2") q.addParameter("list", "false") deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiNoteBuilder() noteData = a.buildNote(deck.getQuestions()[0]) assert (noteData["fields"]["Back"] == "Dublin 1<br>Dublin 2<br>")
def testAddImageForAnkiQuestion(): fullImagePath = os.path.abspath("tests/testData/imageFolder/image.png") deck = AnkiDeck("Test deck") question = AnkiQuestion("test question") deck.addQuestion(question) question.addImage("image.png", fullImagePath) with open(fullImagePath, 'rb') as data: mediaItem = AnkiQuestionMedia("image", "image.png", data.read()) assert(mediaItem == question.getMedia()[0])
def testManyMultiLineQuestionLines(): q = AnkiQuestion("Capital Cities\nCapital of dublin") q.addQuestion("Second line") q.addAnswer("Dublin") deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiConnector() noteData = a._buildNote(deck.getQuestions()[0]) assert (noteData["fields"]["Front"] == "Capital Cities<br>Capital of dublin <br>Second line <br>")
def testBuildingMultiFieldNotes(): q = AnkiQuestion("Question") q.addAnswer("Answer") q.addLineToNamedField("field1", "Value 1") q.addLineToNamedField("field1", "Value 2") deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiNoteBuilder() noteData = a.buildNote(deck.getQuestions()[0]) expectedString = "<ul style='list-style-position: inside;'><li>Value 1</li><li>Value 2</li></ul>" assert (noteData.get("fields").get("field1", None) != None) assert (noteData.get("fields").get("field1") == expectedString)
def testCodeQuestionBuildsWithListStyle(): q = AnkiQuestion("Capital of dublin") q.addParameter("codeStyle", "manni") q.addCode("python3", ["print('Hello')"]) deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiNoteBuilder() noteData = a.buildNote(deck.getQuestions()[0]) assert ( noteData["fields"]["Back"] == """<ul style='list-style-position: inside;'><li><div style="text-align:left"> <div class="highlight" style="background: #f0f3f3"><pre style="line-height: 125%"><span></span><span style="color: #336666">print</span>(<span style="color: #CC3300">'Hello'</span>)<br></pre></div> </div></li></ul>""" )
def testQuestionOrderedList(): q = AnkiQuestion("Capital of dublin") q.addAnswer("Dublin 1") q.addAnswer("Dublin 2") q.addParameter("list", "ol") deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiNoteBuilder() noteData = a.buildNote(deck.getQuestions()[0]) assert ( noteData["fields"]["Back"] == "<ol style='list-style-position: inside;'><li>Dublin 1</li><li>Dublin 2</li></ol>" )
def testBuildingClozeNotes(): q = AnkiQuestion("When was Dublin founded {{c1::1204}}") q.addAnswer("Some Extra info") q.addParameter("type", "Cloze") deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiNoteBuilder() noteData = a.buildNote(deck.getQuestions()[0]) assert ( noteData["fields"]["Text"] == "When was Dublin founded {{c1::1204}}") assert ( noteData["fields"]["Extra"] == "<ul style='list-style-position: inside;'><li>Some Extra info</li></ul>" )
def testBuildBasicNote(): #Build basic quesions q = AnkiQuestion("Capital of dublin") q.addAnswer("Dublin") deck = AnkiDeck("Capitals") deck.addQuestion(q) a = AnkiNoteBuilder() noteData = a.buildNote(deck.getQuestions()[0]) expectedDeckName = config.defaultDeck + config.defaultDeckConnector + "Capitals" print(noteData) assert (noteData["deckName"] == expectedDeckName) assert (noteData["modelName"] == "Basic") assert (noteData["tags"] == []) assert (noteData["fields"]["Front"] == "Capital of dublin") assert (noteData["fields"]["Back"] == "<ul style='list-style-position: inside;'><li>Dublin</li></ul>")