예제 #1
0
def testQuestionInheritParamsFromDeck():

    q1 = AnkiQuestion("Test question")
    q1.addAnswer("Test Answer")
    q1.addParameter("type", "reversed")

    deck = AnkiDeck("Test Deck")
    deck.addParameter("type1", "basic1")
    deck.addParameter("type", "basic")
    deck.addQuestion(q1)

    questions = deck.getQuestions()

    assert (questions[0].getParameter("type") == "reversed")
    assert (questions[0].getParameter("type1") == "basic1")
예제 #2
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>")
예제 #3
0
def testAddMultiLineQuestion():

    deck = AnkiDeck("Test deck")
    questionFactory = AnkiQuestionFactory("test", "")

    questionFactory.addQuestionLine(" test question\n second line")
    questionFactory.addAnswerLine("answer")

    q = questionFactory.buildQuestion()

    assert(q.question[0] == "test question\nsecond line")
예제 #4
0
def test_no_base_deck_paramters():

    q = AnkiQuestion("Question")
    q.addAnswer("answer 1")
    deck = AnkiDeck("test")
    deck.addQuestion(q)

    a = AnkiNoteBuilder()
    noteData = a.buildNote(deck.getQuestions()[0])
    assert (noteData["deckName"] != "test")

    # Remove default deck
    q.addParameter("baseDeck", "false")

    a = AnkiNoteBuilder()
    noteData = a.buildNote(deck.getQuestions()[0])
    assert (noteData.get("deckName", "test"))
예제 #5
0
def testDeckNameSetFor_GetAllDeckQuestion():

    parent = AnkiDeck("parent")
    child = AnkiDeck("child")
    subChild = AnkiDeck("subChild")

    child.addSubdeck(subChild)
    parent.addSubdeck(child)

    # Expected question
    expectedQuestion1 = AnkiQuestion("What is the capital of Ireland")
    expectedQuestion1.addAnswer("Dublin")
    expectedQuestion1.setDeckName("parent")

    expectedQuestion2 = AnkiQuestion("What is the capital of France")
    expectedQuestion2.addAnswer("Paris")
    expectedQuestion2.setDeckName("parent::child")

    expectedQuestion3 = AnkiQuestion("What is the capital of Germany")
    expectedQuestion3.addAnswer("Berlin")
    expectedQuestion3.setDeckName("parent::child::subChild")

    # Add questions
    firstQuestion = AnkiQuestion("What is the capital of Ireland")
    firstQuestion.addAnswer("Dublin")
    parent.addQuestion(firstQuestion)

    secondQuestion = AnkiQuestion("What is the capital of France")
    secondQuestion.addAnswer("Paris")
    child.addQuestion(secondQuestion)

    thirdQuestion = AnkiQuestion("What is the capital of Germany")
    thirdQuestion.addAnswer("Berlin")
    subChild.addQuestion(thirdQuestion)

    # Comprae
    questions = parent.getQuestions()

    assert (questions == [
        expectedQuestion1, expectedQuestion2, expectedQuestion3
    ])
예제 #6
0
def testDecksInheritParamsFromParentDeck():

    q1 = AnkiQuestion("Test question")
    q1.addAnswer("Test Answer")
    q1.addParameter("q0", "question")

    deck0 = AnkiDeck("deck0")
    deck0.addParameter("deck0", "deck0")
    deck0.addQuestion(q1)

    deck1 = AnkiDeck("deck1")
    deck1.addParameter("deck1", "deck1")
    deck1.addSubdeck(deck0)

    deck2 = AnkiDeck("deck2")
    deck2.addParameter("deck2", "deck2")
    deck2.addParameter("deck1", "deck2")
    deck2.addParameter("deck0", "deck2")
    deck2.addParameter("q0", "deck2")
    deck2.addSubdeck(deck1)

    questions = deck2.getQuestions()
    print(deck2._parameters)

    print(questions[0]._parameters)
    assert (questions[0].getParameter("deck2") == "deck2")
    assert (questions[0].getParameter("deck1") == "deck1")
    assert (questions[0].getParameter("deck0") == "deck0")
    assert (questions[0].getParameter("q0") == "question")
예제 #7
0
def testGetMediaMethod():

    # Create deck with subdeck
    parent = AnkiDeck("parent")
    parent._media = ['p']
    child = AnkiDeck("child")
    child._media = ['c']
    subChild = AnkiDeck("subChild")
    subChild._media = ['sc']

    child.addSubdeck(subChild)
    parent.addSubdeck(child)

    assert(parent.getMedia() == ['sc', 'c', 'p'])