Beispiel #1
0
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>")
Beispiel #4
0
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)
Beispiel #5
0
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">&#39;Hello&#39;</span>)<br></pre></div> </div></li></ul>"""
    )
Beispiel #6
0
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>"
    )
Beispiel #7
0
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>"
    )
Beispiel #8
0
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>")