From b1a28ae4cd830db59302e54c4669fc6cd64f4163 Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 <79588074+mgiannopoulos24@users.noreply.github.com> Date: Sun, 18 Jan 2026 00:59:03 +0200 Subject: [PATCH 1/2] Translate file library/unittest-mock-examples.po --- dictionaries/main.txt | 20 + library/unittest.mock-examples.po | 773 ++++++++++++++++++++++++++++-- 2 files changed, 750 insertions(+), 43 deletions(-) diff --git a/dictionaries/main.txt b/dictionaries/main.txt index 6f25f636..d6cc64da 100644 --- a/dictionaries/main.txt +++ b/dictionaries/main.txt @@ -208,6 +208,7 @@ Microsoft Mises Mitch Mixin +Mock Modeling Modula Modules @@ -238,6 +239,7 @@ Packard Pareto Pascal Passed +Patching Path Paul Perl @@ -426,6 +428,7 @@ await awaitable b back +backend backport backslash backslashes @@ -1065,6 +1068,7 @@ mixins mkdir mm mobile +mock mod mode modification @@ -1346,6 +1350,7 @@ service services set setProperty +setUp setattr setlocale sets @@ -1363,6 +1368,7 @@ shifted shifting short show +side sign signature signed @@ -1477,6 +1483,7 @@ target task tasks tb +tearDown temperature templating termcap @@ -1727,11 +1734,13 @@ zoneinfo αντ αντί ανταλλάσετε +αντι αντιγραμμένοι αντικαθιστούμενη αντικατεστημένες αντικειμενοστρεφής αντικειμενοστρεφείς +αντιστοιχιστή αντιστραμμένα αντιστραμμένη αντιταχθείτε @@ -1807,8 +1816,12 @@ zoneinfo εμφωλευμένα εμφωλευμένες εμφωλευμένη +εμφωλευμένης +εμφωλευμένων +εμφωλεύετε εμφωλεύσετε εμφώλευσης +εναλλάξιμες ενδοκλάσεων ενσωματωτές ενσωματώσιμες @@ -1826,6 +1839,7 @@ zoneinfo επαναλήψιμους επαναληπτές επαναληπτή +επαναληπτών επαναχρησιμοποιήσετε επαναχρησιμοποιηθούν επανεγκατασήστε @@ -1843,6 +1857,7 @@ zoneinfo επικαλώντας επιστρεφόμενης επιστρεφόμενος +εσοχίζουν εσωκλειόμενη εσωκλειόμενων εσωτερικοποίησης @@ -1902,6 +1917,7 @@ zoneinfo μετα μεταβάλλετε μεταβλητή +μεταβλητοποιηθούν μεταβλητότητά μεταβλητών μεταδεδομένα @@ -2007,6 +2023,8 @@ zoneinfo προσδιοριστής προσεταιριστικός προσημασμένος +προσομοίωσή +προσομοιώσεών προσπελαύνεται προσποιηθείτε προτάσσοντάς @@ -2085,7 +2103,9 @@ zoneinfo υποκατάλογος υποκαταλόγους υποκατηγοριοποιώντας +υποκλάσει υποκλάσεις +υποκλάσετε υποκλάσεων υποκλάση υποκλάσης diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 9d8f5478..931751d4 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -9,49 +9,54 @@ msgstr "" "Project-Id-Version: Python 3.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-12-04 09:48+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" +"PO-Revision-Date: 2026-01-17 23:50+0300\n" +"Last-Translator: Marios Giannopoulos \n" +"Language-Team: PyGreece \n" +"Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: library/unittest.mock-examples.rst:2 msgid ":mod:`!unittest.mock` --- getting started" -msgstr "" +msgstr ":mod:`!unittest.mock` --- έναρξη χρήσης" #: library/unittest.mock-examples.rst:27 msgid "Using Mock" -msgstr "" +msgstr "Χρήση της Προσομοίωσης (Mock)" #: library/unittest.mock-examples.rst:30 msgid "Mock Patching Methods" -msgstr "" +msgstr "Προσομοίωση Μεθόδων με Επιδιόρθωση (Patching)" #: library/unittest.mock-examples.rst:32 msgid "Common uses for :class:`Mock` objects include:" -msgstr "" +msgstr "Κοινές χρήσεις για αντικείμενα :class:`Mock` περιλαμβάνουν:" #: library/unittest.mock-examples.rst:34 msgid "Patching methods" -msgstr "" +msgstr "Επιδιόρθωση (Patching) μεθόδων" #: library/unittest.mock-examples.rst:35 msgid "Recording method calls on objects" -msgstr "" +msgstr "Καταγραφή κλήσεων μεθόδων σε αντικείμενα" #: library/unittest.mock-examples.rst:37 msgid "" "You might want to replace a method on an object to check that it is called " "with the correct arguments by another part of the system:" msgstr "" +"Ίσως θέλετε να αντικαταστήσετε μια μέθοδο σε ένα αντικείμενο για να ελέγξετε " +"ότι καλείται με τα σωστά επιχειρήματα από ένα άλλο μέρος του συστήματος:" #: library/unittest.mock-examples.rst:45 msgid "" "Once our mock has been used (``real.method`` in this example) it has methods " "and attributes that allow you to make assertions about how it has been used." msgstr "" +"Μόλις χρησιμοποιηθεί η προσομοίωσή μας (``real.method`` σε αυτό το " +"παράδειγμα) έχει μεθόδους και χαρακτηριστικά που σας επιτρέπουν να κάνετε " +"δηλώσεις σχετικά με το πώς έχει χρησιμοποιηθεί." #: library/unittest.mock-examples.rst:50 msgid "" @@ -59,6 +64,9 @@ msgid "" "are interchangeable. As the ``MagicMock`` is the more capable class it makes " "a sensible one to use by default." msgstr "" +"Στα περισσότερα από αυτά τα παραδείγματα οι κλάσεις :class:`Mock` και :class:" +"`MagicMock` είναι εναλλάξιμες. Καθώς η ``MagicMock`` είναι η πιο ικανή " +"κλάση, αποτελεί μια λογική επιλογή για χρήση από προεπιλογή." #: library/unittest.mock-examples.rst:54 msgid "" @@ -67,16 +75,22 @@ msgid "" "or :meth:`~Mock.assert_called_once_with` method to check that it was called " "with the correct arguments." msgstr "" +"Μόλις κληθεί η προσομοίωση, το χαρακτηριστικό :attr:`~Mock.called` ορίζεται " +"σε ``True``. Πιο σημαντικό είναι ότι μπορούμε να χρησιμοποιήσουμε τη μέθοδο :" +"meth:`~Mock.assert_called_with` ή :meth:`~Mock.assert_called_once_with` για " +"να ελέγξουμε ότι κλήθηκε με τα σωστά επιχειρήματα." #: library/unittest.mock-examples.rst:59 msgid "" "This example tests that calling ``ProductionClass().method`` results in a " "call to the ``something`` method:" msgstr "" +"Αυτό το παράδειγμα ελέγχει ότι η κλήση της ``ProductionClass().method`` έχει " +"ως αποτέλεσμα μια κλήση στη μέθοδο ``something``:" #: library/unittest.mock-examples.rst:76 msgid "Mock for Method Calls on an Object" -msgstr "" +msgstr "Προσομοίωση για Κλήσεις Μεθόδων σε ένα Αντικείμενο" #: library/unittest.mock-examples.rst:78 msgid "" @@ -85,18 +99,27 @@ msgid "" "method (or some part of the system under test) and then check that it is " "used in the correct way." msgstr "" +"Στο τελευταίο παράδειγμα επιδιορθώσαμε μια μέθοδο απευθείας σε ένα " +"αντικείμενο για να ελέγξουμε ότι κλήθηκε σωστά. Μια άλλη κοινή χρήση είναι " +"να περάσουμε ένα αντικείμενο σε μια μέθοδο (ή σε κάποιο μέρος του συστήματος " +"υπό δοκιμή) και στη συνέχεια να ελέγξουμε ότι χρησιμοποιείται με τον σωστό " +"τρόπο." #: library/unittest.mock-examples.rst:83 msgid "" "The simple ``ProductionClass`` below has a ``closer`` method. If it is " "called with an object then it calls ``close`` on it." msgstr "" +"Η απλή ``ProductionClass`` παρακάτω έχει μια μέθοδο ``closer``. Εάν κληθεί " +"με ένα αντικείμενο, τότε καλεί τη μέθοδο ``close`` σε αυτό." #: library/unittest.mock-examples.rst:91 msgid "" "So to test it we need to pass in an object with a ``close`` method and check " "that it was called correctly." msgstr "" +"Έτσι, για να το δοκιμάσουμε, πρέπει να περάσουμε ένα αντικείμενο με μια " +"μέθοδο ``close`` και να ελέγξουμε ότι κλήθηκε σωστά." #: library/unittest.mock-examples.rst:99 msgid "" @@ -105,10 +128,15 @@ msgid "" "accessing it in the test will create it, but :meth:`~Mock." "assert_called_with` will raise a failure exception." msgstr "" +"Δεν χρειάζεται να κάνουμε καμία εργασία για να παρέχουμε τη μέθοδο 'close' " +"στην προσομοίωσή μας. Η πρόσβαση στο close τη δημιουργεί. Έτσι, αν το " +"'close' δεν έχει ήδη κληθεί, τότε η πρόσβαση σε αυτό στη δοκιμή θα το " +"δημιουργήσει, αλλά η :meth:`~Mock.assert_called_with` θα κάνει raise μια " +"εξαίρεση αποτυχίας." #: library/unittest.mock-examples.rst:106 msgid "Mocking Classes" -msgstr "" +msgstr "Προσομοίωση Κλάσεων" #: library/unittest.mock-examples.rst:108 msgid "" @@ -117,6 +145,11 @@ msgid "" "Instances are created by *calling the class*. This means you access the " "\"mock instance\" by looking at the return value of the mocked class." msgstr "" +"Μια κοινή χρήση είναι η προσομοίωση κλάσεων που δημιουργούνται από τον " +"κώδικα υπό δοκιμή. Όταν επιδιορθώνετε (patch) μια κλάση, τότε αυτή η κλάση " +"αντικαθίσταται με μια προσομοίωση. Τα στιγμιότυπα δημιουργούνται με την " +"*κλήση της κλάσης*. Αυτό σημαίνει ότι έχετε πρόσβαση στο \"στιγμιότυπο " +"προσομοίωσης\" εξετάζοντας την τιμή επιστροφής της προσομοιωμένης κλάσης." #: library/unittest.mock-examples.rst:113 msgid "" @@ -126,6 +159,12 @@ msgid "" "mock, so it is configured by modifying the mock :attr:`~Mock." "return_value`. ::" msgstr "" +"Στο παρακάτω παράδειγμα έχουμε μια συνάρτηση ``some_function`` που " +"δημιουργεί ένα στιγμιότυπο της ``Foo`` και καλεί μια μέθοδο σε αυτό. Η κλήση " +"στη :func:`patch` αντικαθιστά την κλάση ``Foo`` με μια προσομοίωση. Το " +"στιγμιότυπο της ``Foo`` είναι το αποτέλεσμα της κλήσης της προσομοίωσης, " +"οπότε διαμορφώνεται τροποποιώντας το χαρακτηριστικό :attr:`~Mock." +"return_value` της προσομοίωσης. ::" #: library/unittest.mock-examples.rst:118 msgid "" @@ -139,10 +178,19 @@ msgid "" "... result = some_function()\n" "... assert result == 'the result'" msgstr "" +">>> def some_function():\n" +"... instance = module.Foo()\n" +"... return instance.method()\n" +"...\n" +">>> with patch('module.Foo') as mock:\n" +"... instance = mock.return_value\n" +"... instance.method.return_value = 'the result'\n" +"... result = some_function()\n" +"... assert result == 'the result'" #: library/unittest.mock-examples.rst:130 msgid "Naming your mocks" -msgstr "" +msgstr "Ονομασία των προσομοιώσεών σας" #: library/unittest.mock-examples.rst:132 msgid "" @@ -150,10 +198,14 @@ msgid "" "the mock and can be helpful when the mock appears in test failure messages. " "The name is also propagated to attributes or methods of the mock:" msgstr "" +"Μπορεί να είναι χρήσιμο να δώσετε στις προσομοιώσεις σας ένα όνομα. Το όνομα " +"εμφανίζεται στην αναπαράσταση (repr) της προσομοίωσης και μπορεί να είναι " +"χρήσιμο όταν η προσομοίωση εμφανίζεται σε μηνύματα αποτυχίας δοκιμών. Το " +"όνομα επίσης μεταδίδεται σε χαρακτηριστικά ή μεθόδους της προσομοίωσης:" #: library/unittest.mock-examples.rst:144 msgid "Tracking all Calls" -msgstr "" +msgstr "Παρακολούθηση όλων των Κλήσεων" #: library/unittest.mock-examples.rst:146 msgid "" @@ -161,6 +213,9 @@ msgid "" "`~Mock.mock_calls` attribute records all calls to child attributes of the " "mock - and also to their children." msgstr "" +"Συχνά θέλετε να παρακολουθείτε περισσότερες από μία κλήσεις σε μια μέθοδο. " +"Το χαρακτηριστικό :attr:`~Mock.mock_calls` καταγράφει όλες τις κλήσεις σε " +"παιδικά χαρακτηριστικά της προσομοίωσης - και επίσης στα παιδιά τους." #: library/unittest.mock-examples.rst:158 msgid "" @@ -169,12 +224,18 @@ msgid "" "well as asserting that the calls you expected have been made, you are also " "checking that they were made in the right order and with no additional calls:" msgstr "" +"Εάν κάνετε μια δήλωση σχετικά με το ``mock_calls`` και έχουν κληθεί " +"απροσδόκητες μέθοδοι, τότε η δήλωση θα αποτύχει. Αυτό είναι χρήσιμο επειδή " +"εκτός από το να δηλώνετε ότι οι κλήσεις που περιμένατε έχουν γίνει, ελέγχετε " +"επίσης ότι έγιναν με τη σωστή σειρά και χωρίς επιπλέον κλήσεις:" #: library/unittest.mock-examples.rst:163 msgid "" "You use the :data:`call` object to construct lists for comparing with " "``mock_calls``:" msgstr "" +"Χρησιμοποιείτε το αντικείμενο :data:`call` για να κατασκευάσετε λίστες για " +"σύγκριση με το ``mock_calls``:" #: library/unittest.mock-examples.rst:170 msgid "" @@ -182,26 +243,34 @@ msgid "" "it is not possible to track nested calls where the parameters used to create " "ancestors are important:" msgstr "" +"Ωστόσο, τα παραμέτρους σε κλήσεις που επιστρέφουν προσομοιώσεις δεν " +"καταγράφονται, που σημαίνει ότι δεν είναι δυνατή η παρακολούθηση " +"εμφωλευμένων κλήσεων όπου οι παράμετροι που χρησιμοποιούνται για τη " +"δημιουργία προγόνων είναι σημαντικοί:" #: library/unittest.mock-examples.rst:181 msgid "Setting Return Values and Attributes" -msgstr "" +msgstr "Ορισμός Τιμών Επιστροφής και Χαρακτηριστικών" #: library/unittest.mock-examples.rst:183 msgid "Setting the return values on a mock object is trivially easy:" msgstr "" +"Ορισμός των τιμών επιστροφής σε ένα αντικείμενο προσομοίωσης είναι " +"εξαιρετικά εύκολος:" #: library/unittest.mock-examples.rst:190 msgid "Of course you can do the same for methods on the mock:" -msgstr "" +msgstr "Φυσικά μπορείτε να κάνετε το ίδιο για μεθόδους στην προσομοίωση:" #: library/unittest.mock-examples.rst:197 msgid "The return value can also be set in the constructor:" -msgstr "" +msgstr "Η τιμή επιστροφής μπορεί επίσης να οριστεί στον κατασκευαστή:" #: library/unittest.mock-examples.rst:203 msgid "If you need an attribute setting on your mock, just do it:" msgstr "" +"Εάν χρειάζεστε έναν ορισμό χαρακτηριστικού στην προσομοίωσή σας, απλώς κάντε " +"το:" #: library/unittest.mock-examples.rst:210 msgid "" @@ -209,22 +278,31 @@ msgid "" "``mock.connection.cursor().execute(\"SELECT 1\")``. If we wanted this call " "to return a list, then we have to configure the result of the nested call." msgstr "" +"Μερικές φορές θέλετε να προσομοιώσετε μια πιο σύνθετη κατάσταση, όπως για " +"παράδειγμα ``mock.connection.cursor().execute(\"SELECT 1\")``. Εάν θέλαμε " +"αυτή τη κλήση να επιστρέψει μια λίστα, τότε πρέπει να διαμορφώσουμε το " +"αποτέλεσμα της εμφωλευμένης κλήσης." #: library/unittest.mock-examples.rst:214 msgid "" "We can use :data:`call` to construct the set of calls in a \"chained call\" " "like this for easy assertion afterwards:" msgstr "" +"Μπορούμε να χρησιμοποιήσουμε το αντικείμενο :data:`call` για να " +"κατασκευάσουμε την λίστα των κλήσεων σε μια \"αλυσιδωτή κλήση\" όπως αυτή " +"για εύκολη δήλωση αργότερα:" #: library/unittest.mock-examples.rst:228 msgid "" "It is the call to ``.call_list()`` that turns our call object into a list of " "calls representing the chained calls." msgstr "" +"Είναι η κλήση στο ``.call_list()`` που μετατρέπει το αντικείμενο κλήσης σε " +"μια λίστα κλήσεων που αντιπροσωπεύουν τις αλυσιδωτές κλήσεις." #: library/unittest.mock-examples.rst:233 msgid "Raising exceptions with mocks" -msgstr "" +msgstr "Πρόκληση εξαιρέσεων με προσομοιώσεις" #: library/unittest.mock-examples.rst:235 msgid "" @@ -232,10 +310,13 @@ msgid "" "exception class or instance then the exception will be raised when the mock " "is called." msgstr "" +"Ένα χρήσιμο χαρακτηριστικό είναι το :attr:`~Mock.side_effect`. Εάν το " +"ορίσετε σε μια κλάση εξαίρεσης ή ένα στιγμιότυπο, τότε η εξαίρεση θα γίνει " +"raise όταν κληθεί η προσομοίωση." #: library/unittest.mock-examples.rst:247 msgid "Side effect functions and iterables" -msgstr "" +msgstr "Συναρτήσεις παρενέργειας και iterables" #: library/unittest.mock-examples.rst:249 msgid "" @@ -245,6 +326,11 @@ msgid "" "set ``side_effect`` to an iterable every call to the mock returns the next " "value from the iterable:" msgstr "" +"Το ``side_effect`` μπορεί επίσης να οριστεί σε μια συνάρτηση ή ένα iterable. " +"Η χρήση του ``side_effect`` ως iterable είναι όταν η προσομοίωσή σας " +"πρόκειται να κληθεί αρκετές φορές, και θέλετε κάθε κλήση να επιστρέφει μια " +"διαφορετική τιμή. Όταν ορίζετε το ``side_effect`` σε ένα iterable, κάθε " +"κλήση στην προσομοίωση επιστρέφει την επόμενη τιμή από το iterable:" #: library/unittest.mock-examples.rst:264 msgid "" @@ -253,10 +339,14 @@ msgid "" "function. The function will be called with the same arguments as the mock. " "Whatever the function returns is what the call returns:" msgstr "" +"Για πιο προηγμένες χρήσεις, όπως η δυναμική μεταβολή των τιμών επιστροφής " +"ανάλογα με το πώς καλείται η προσομοίωση, το ``side_effect`` μπορεί να είναι " +"μια συνάρτηση. Η συνάρτηση θα κληθεί με τα ίδια επιχειρήματα με την " +"προσομοίωση. Ό,τι επιστρέφει η συνάρτηση είναι αυτό που επιστρέφει η κλήση:" #: library/unittest.mock-examples.rst:281 msgid "Mocking asynchronous iterators" -msgstr "" +msgstr "Προσομοίωση ασύγχρονων επαναληπτών" #: library/unittest.mock-examples.rst:283 msgid "" @@ -265,10 +355,15 @@ msgid "" "attribute of ``__aiter__`` can be used to set the return values to be used " "for iteration." msgstr "" +"Από την έκδοση Python 3.8, οι ``AsyncMock`` και ``MagicMock`` έχουν " +"υποστήριξη για την προσομοίωση :ref:`ασύγχρονων επαναληπτών ` μέσω του ``__aiter__``. Το χαρακτηριστικό :attr:`~Mock." +"return_value` του ``__aiter__`` μπορεί να χρησιμοποιηθεί για να ορίσει τις " +"τιμές επιστροφής που θα χρησιμοποιηθούν για την επανάληψη." #: library/unittest.mock-examples.rst:298 msgid "Mocking asynchronous context manager" -msgstr "" +msgstr "Προσομοίωση ασύγχρονου διαχειριστή συμφραζομένων" #: library/unittest.mock-examples.rst:300 msgid "" @@ -277,10 +372,15 @@ msgid "" "default, ``__aenter__`` and ``__aexit__`` are ``AsyncMock`` instances that " "return an async function." msgstr "" +"Από την έκδοση Python 3.8, οι ``AsyncMock`` και ``MagicMock`` έχουν " +"υποστήριξη για την προσομοίωση :ref:`ασύγχρονων διαχειριστών ` μέσω των ``__aenter__`` και ``__aexit__``. Από προεπιλογή, οι " +"``__aenter__`` και ``__aexit__`` είναι στιγμιότυπα ``AsyncMock`` που " +"επιστρέφουν μια ασύγχρονη συνάρτηση." #: library/unittest.mock-examples.rst:322 msgid "Creating a Mock from an Existing Object" -msgstr "" +msgstr "Δημιουργία Προσομοίωσης από ένα Υφιστάμενο Αντικείμενο" #: library/unittest.mock-examples.rst:324 msgid "" @@ -291,6 +391,14 @@ msgid "" "you refactor the first class, so that it no longer has ``some_method`` - " "then your tests will continue to pass even though your code is now broken!" msgstr "" +"Ένα πρόβλημα με την υπερβολική χρήση της προσομοίωσης είναι ότι συνδέει τις " +"δοκιμές σας με την υλοποίηση των προσομοιώσεών σας αντί με τον πραγματικό " +"κώδικα. Υποθέστε ότι έχετε μια κλάση που υλοποιεί την ``some_method``. Σε " +"μια δοκιμή για μια άλλη κλάση, παρέχετε μια προσομοίωση αυτού του " +"αντικειμένου που *επίσης* παρέχει την ``some_method``. Εάν αργότερα " +"αναδιαρθρώσετε την πρώτη κλάση, έτσι ώστε να μην έχει πλέον την " +"``some_method`` - τότε οι δοκιμές σας θα συνεχίσουν να περνούν, παρόλο που ο " +"κώδικάς σας είναι τώρα σπασμένος!" #: library/unittest.mock-examples.rst:331 msgid "" @@ -301,6 +409,14 @@ msgid "" "specification, then tests that use that class will start failing immediately " "without you having to instantiate the class in those tests." msgstr "" +":class:`Mock` σας επιτρέπει να παρέχετε ένα αντικείμενο ως προδιαγραφή για " +"την προσομοίωση, χρησιμοποιώντας το όρισμα λέξης-κλειδιού *spec*. Η πρόσβαση " +"σε μεθόδους / χαρακτηριστικά στην προσομοίωση που δεν υπάρχουν στο " +"αντικείμενο προδιαγραφής σας θα γίνει raise αμέσως ένα σφάλμα " +"χαρακτηριστικού. Εάν αλλάξετε την υλοποίηση της προδιαγραφής σας, τότε οι " +"δοκιμές που χρησιμοποιούν αυτή την κλάση θα αρχίσουν να αποτυγχάνουν αμέσως " +"χωρίς να χρειάζεται να δημιουργήσετε ένα στιγμιότυπο της κλάσης σε αυτές τις " +"δοκιμές." #: library/unittest.mock-examples.rst:344 msgid "" @@ -308,6 +424,9 @@ msgid "" "mock, regardless of whether some parameters were passed as positional or " "named arguments::" msgstr "" +"Η χρήση μιας προδιαγραφής επιτρέπει επίσης μια πιο έξυπνη αντιστοίχιση των " +"κλήσεων που γίνονται στην προσομοίωση, ανεξάρτητα από το αν ορισμένες " +"παράμετροι περάστηκαν ως ορισμένες ή ονομαστικές παραμέτρους::" #: library/unittest.mock-examples.rst:348 msgid "" @@ -318,12 +437,21 @@ msgid "" "\n" ">>> mock.assert_called_with(a=1, b=2, c=3)" msgstr "" +">>> def f(a, b, c): pass\n" +"...\n" +">>> mock = Mock(spec=f)\n" +">>> mock(1, 2, 3)\n" +"\n" +">>> mock.assert_called_with(a=1, b=2, c=3)" #: library/unittest.mock-examples.rst:355 msgid "" "If you want this smarter matching to also work with method calls on the " "mock, you can use :ref:`auto-speccing `." msgstr "" +"Εάν θέλετε αυτή η πιο έξυπνη αντιστοίχιση να λειτουργεί επίσης με κλήσεις " +"μεθόδων στην προσομοίωση, μπορείτε να χρησιμοποιήσετε :ref:`auto-speccing " +"`." #: library/unittest.mock-examples.rst:358 msgid "" @@ -331,10 +459,13 @@ msgid "" "arbitrary attributes as well as the getting of them then you can use " "*spec_set* instead of *spec*." msgstr "" +"Εάν θέλετε μια πιο ισχυρή μορφή προδιαγραφής που αποτρέπει τον ορισμό " +"αυθαίρετων χαρακτηριστικών καθώς και την πρόσβαση σε αυτά, τότε μπορείτε να " +"χρησιμοποιήσετε το *spec_set* αντί για το *spec*." #: library/unittest.mock-examples.rst:364 msgid "Using side_effect to return per file content" -msgstr "" +msgstr "Χρήση του side_effect για επιστροφή περιεχομένου ανά αρχείο" #: library/unittest.mock-examples.rst:366 msgid "" @@ -342,6 +473,11 @@ msgid "" "side_effect` can be used to return a new Mock object per call. This can be " "used to return different contents per file stored in a dictionary::" msgstr "" +"Η :func:`mock_open` χρησιμοποιείται για την επιδιόρθωση (patch) της :func:" +"`open` μεθόδου. Το :attr:`~Mock.side_effect` μπορεί να χρησιμοποιηθεί για " +"την επιστροφή ενός νέου αντικειμένου Mock ανά κλήση. Αυτό μπορεί να " +"χρησιμοποιηθεί για την επιστροφή διαφορετικών περιεχομένων ανά αρχείο που " +"αποθηκεύονται σε ένα λεξικό::" #: library/unittest.mock-examples.rst:370 msgid "" @@ -362,10 +498,26 @@ msgid "" " with open(\"file3\") as file2:\n" " assert file2.read() == \"default\"" msgstr "" +"DEFAULT = \"default\"\n" +"data_dict = {\"file1\": \"data1\",\n" +" \"file2\": \"data2\"}\n" +"\n" +"def open_side_effect(name):\n" +" return mock_open(read_data=data_dict.get(name, DEFAULT))()\n" +"\n" +"with patch(\"builtins.open\", side_effect=open_side_effect):\n" +" with open(\"file1\") as file1:\n" +" assert file1.read() == \"data1\"\n" +"\n" +" with open(\"file2\") as file2:\n" +" assert file2.read() == \"data2\"\n" +"\n" +" with open(\"file3\") as file2:\n" +" assert file2.read() == \"default\"" #: library/unittest.mock-examples.rst:389 msgid "Patch Decorators" -msgstr "" +msgstr "Διακοσμητές Επιδιόρθωσης (Patch Decorators)" #: library/unittest.mock-examples.rst:393 msgid "" @@ -373,6 +525,9 @@ msgid "" "they are looked up. This is normally straightforward, but for a quick guide " "read :ref:`where to patch `." msgstr "" +"Με την :func:`patch` έχει σημασία να επιδιορθώνετε αντικείμενα στο χώρο " +"ονομάτων όπου αναζητούνται. Αυτό είναι συνήθως απλό, αλλά για έναν γρήγορο " +"οδηγό διαβάστε :ref:`where to patch `." #: library/unittest.mock-examples.rst:398 msgid "" @@ -382,6 +537,12 @@ msgid "" "on them has to be undone after the test or the patch will persist into other " "tests and cause hard to diagnose problems." msgstr "" +"Μια κοινή ανάγκη στις δοκιμές είναι να επιδιορθώσετε ένα χαρακτηριστικό " +"κλάσης ή ένα χαρακτηριστικό μονάδας, για παράδειγμα επιδιόρθωση ενός " +"ενσωματωμένου ή επιδιόρθωση μιας κλάσης σε μια μονάδα για να ελέγξετε ότι " +"δημιουργείται. Οι μονάδες και οι κλάσεις είναι ουσιαστικά παγκόσμιες, οπότε " +"η επιδιόρθωση σε αυτές πρέπει να αναιρεθεί μετά τη δοκιμή ή η επιδιόρθωση θα " +"επιμείνει σε άλλες δοκιμές και θα προκαλέσει προβλήματα δύσκολα στη διάγνωση." #: library/unittest.mock-examples.rst:404 msgid "" @@ -393,10 +554,18 @@ msgid "" "the name of the attribute you would like patched, plus optionally the value " "to patch it with." msgstr "" +"Η προσομοίωση παρέχει τρεις βολικούς διακοσμητές για αυτό: :func:`patch`, :" +"func:`patch.object` και :func:`patch.dict`. Η ``patch`` παίρνει μια μοναδική " +"συμβολοσειρά, της μορφής ``package.module.Class.attribute`` για να καθορίσει " +"το χαρακτηριστικό που επιδιορθώνετε. Επίσης παίρνει προαιρετικά μια τιμή με " +"την οποία θέλετε να αντικατασταθεί το χαρακτηριστικό (ή η κλάση ή " +"οτιδήποτε). 'patch.object' παίρνει ένα αντικείμενο και το όνομα του " +"χαρακτηριστικού που θα θέλατε να επιδιορθώσετε, συν προαιρετικά την τιμή με " +"την οποία θα το επιδιορθώσετε." #: library/unittest.mock-examples.rst:412 msgid "``patch.object``::" -msgstr "" +msgstr "``patch.object``::" #: library/unittest.mock-examples.rst:414 msgid "" @@ -415,17 +584,35 @@ msgid "" "...\n" ">>> test()" msgstr "" +">>> original = SomeClass.attribute\n" +">>> @patch.object(SomeClass, 'attribute', sentinel.attribute)\n" +"... def test():\n" +"... assert SomeClass.attribute == sentinel.attribute\n" +"...\n" +">>> test()\n" +">>> assert SomeClass.attribute == original\n" +"\n" +">>> @patch('package.module.attribute', sentinel.attribute)\n" +"... def test():\n" +"... from package.module import attribute\n" +"... assert attribute is sentinel.attribute\n" +"...\n" +">>> test()" #: library/unittest.mock-examples.rst:429 msgid "" "If you are patching a module (including :mod:`builtins`) then use :func:" "`patch` instead of :func:`patch.object`:" msgstr "" +"Εάν επιδιορθώνετε μια μονάδα (συμπεριλαμβανομένου του :mod:`builtins`), τότε " +"χρησιμοποιήστε την :func:`patch` αντί για την :func:`patch.object`:" #: library/unittest.mock-examples.rst:439 msgid "" "The module name can be 'dotted', in the form ``package.module`` if needed::" msgstr "" +"Το όνομα του module μπορεί να είναι 'τελεία', με τη μορφή ``package.module`` " +"εάν χρειάζεται::" #: library/unittest.mock-examples.rst:441 msgid "" @@ -436,10 +623,16 @@ msgid "" "...\n" ">>> test()" msgstr "" +">>> @patch('package.module.ClassName.attribute', sentinel.attribute)\n" +"... def test():\n" +"... from package.module import ClassName\n" +"... assert ClassName.attribute == sentinel.attribute\n" +"...\n" +">>> test()" #: library/unittest.mock-examples.rst:448 msgid "A nice pattern is to actually decorate test methods themselves:" -msgstr "" +msgstr "Ένα ωραίο μοτίβο είναι να διακοσμείτε πραγματικά τις μεθόδους δοκιμής:" #: library/unittest.mock-examples.rst:459 msgid "" @@ -447,10 +640,15 @@ msgid "" "argument (or :func:`patch.object` with two arguments). The mock will be " "created for you and passed into the test function / method:" msgstr "" +"Εάν θέλετε να επιδιορθώσετε με μια προσομοίωση, μπορείτε να χρησιμοποιήσετε :" +"func:`patch` με μόνο ένα όρισμα (ή :func:`patch.object` με δύο ορίσματα). Η " +"προσομοίωση θα δημιουργηθεί για εσάς και θα περαστεί στη συνάρτηση / μέθοδο " +"δοκιμής:" #: library/unittest.mock-examples.rst:471 msgid "You can stack up multiple patch decorators using this pattern::" msgstr "" +"Μπορείτε να στοιβάξετε πολλαπλούς διακοσμητές επιδιόρθωσης χρησιμοποιώντας " #: library/unittest.mock-examples.rst:473 msgid "" @@ -463,6 +661,14 @@ msgid "" "...\n" ">>> MyTest('test_something').test_something()" msgstr "" +">>> class MyTest(unittest.TestCase):\n" +"... @patch('package.module.ClassName1')\n" +"... @patch('package.module.ClassName2')\n" +"... def test_something(self, MockClass2, MockClass1):\n" +"... self.assertIs(package.module.ClassName1, MockClass1)\n" +"... self.assertIs(package.module.ClassName2, MockClass2)\n" +"...\n" +">>> MyTest('test_something').test_something()" #: library/unittest.mock-examples.rst:482 msgid "" @@ -471,6 +677,11 @@ msgid "" "decorators are applied). This means from the bottom up, so in the example " "above the mock for ``test_module.ClassName2`` is passed in first." msgstr "" +"Όταν εμφωλεύετε διακοσμητές επιδιόρθωσης, οι προσομοιώσεις περνιούνται στη " +"διακοσμημένη συνάρτηση με την ίδια σειρά που εφαρμόστηκαν (η κανονική τάξη " +"*Python* με την οποία εφαρμόζονται οι διακοσμητές). Αυτό σημαίνει από κάτω " +"προς τα πάνω, οπότε στο παραπάνω παράδειγμα η προσομοίωση για το " +"``test_module.ClassName2`` περνάει πρώτη." #: library/unittest.mock-examples.rst:487 msgid "" @@ -478,18 +689,26 @@ msgid "" "during a scope and restoring the dictionary to its original state when the " "test ends:" msgstr "" +"Υπάρχει επίσης η :func:`patch.dict` για τον ορισμό τιμών σε ένα λεξικό μόνο " +"κατά τη διάρκεια ενός πεδίου και την αποκατάσταση του λεξικού στην αρχική " +"του κατάσταση όταν τελειώνει η δοκιμή:" #: library/unittest.mock-examples.rst:498 msgid "" "``patch``, ``patch.object`` and ``patch.dict`` can all be used as context " "managers." msgstr "" +"Η ``patch``, η ``patch.object`` και η ``patch.dict`` μπορούν όλες να " +"χρησιμοποιηθούν ως διαχειριστές συμφραζομένων." #: library/unittest.mock-examples.rst:500 msgid "" "Where you use :func:`patch` to create a mock for you, you can get a " "reference to the mock using the \"as\" form of the with statement:" msgstr "" +"Όπου χρησιμοποιείτε την :func:`patch` για να δημιουργήσετε μια προσομοίωση " +"για εσάς, μπορείτε να λάβετε μια αναφορά στην προσομοίωση χρησιμοποιώντας τη " +"μορφή \"as\" της δήλωσης with:" #: library/unittest.mock-examples.rst:515 msgid "" @@ -497,18 +716,23 @@ msgid "" "as class decorators. When used in this way it is the same as applying the " "decorator individually to every method whose name starts with \"test\"." msgstr "" +"Ως εναλλακτική, η ``patch``, η ``patch.object`` και η ``patch.dict`` μπορούν " +"να χρησιμοποιηθούν ως διακοσμητές κλάσης. Όταν χρησιμοποιούνται με αυτόν τον " +"τρόπο, είναι το ίδιο με την εφαρμογή του διακοσμητή ξεχωριστά σε κάθε μέθοδο " +"του οποίου το όνομα ξεκινά με \"test\"." #: library/unittest.mock-examples.rst:523 msgid "Further Examples" -msgstr "" +msgstr "Περαιτέρω Παραδείγματα" #: library/unittest.mock-examples.rst:526 msgid "Here are some more examples for some slightly more advanced scenarios." msgstr "" +"Εδώ είναι μερικά ακόμη παραδείγματα για μερικά ελαφρώς πιο προηγμένα σενάρια." #: library/unittest.mock-examples.rst:530 msgid "Mocking chained calls" -msgstr "" +msgstr "Προσομοίωση αλυσιδωτών κλήσεων" #: library/unittest.mock-examples.rst:532 msgid "" @@ -517,12 +741,19 @@ msgid "" "for the first time, or you fetch its ``return_value`` before it has been " "called, a new :class:`Mock` is created." msgstr "" +"Η προσομοίωση αλυσιδωτών κλήσεων είναι στην πραγματικότητα απλή με την " +"προσομοίωση μόλις κατανοήσετε το χαρακτηριστικό :attr:`~Mock.return_value`. " +"Όταν καλείται μια προσομοίωση για πρώτη φορά, ή λαμβάνετε την " +"``return_value`` της πριν καλεστεί, δημιουργείται μια νέα :class:`Mock`." #: library/unittest.mock-examples.rst:537 msgid "" "This means that you can see how the object returned from a call to a mocked " "object has been used by interrogating the ``return_value`` mock:" msgstr "" +"Αυτό σημαίνει ότι μπορείτε να δείτε πώς έχει χρησιμοποιηθεί το αντικείμενο " +"που επιστρέφεται από μια κλήση σε ένα προσομοιωμένο αντικείμενο, εξετάζοντας " +"την προσομοίωση ``return_value``:" #: library/unittest.mock-examples.rst:545 msgid "" @@ -530,10 +761,13 @@ msgid "" "chained calls. Of course another alternative is writing your code in a more " "testable way in the first place..." msgstr "" +"Από εδώ είναι ένα απλό βήμα για τη διαμόρφωση και στη συνέχεια τη δημιουργία " +"δηλώσεων σχετικά με τις αλυσιδωτές κλήσεις. Φυσικά μια άλλη εναλλακτική " +"είναι να γράψετε τον κώδικά σας με πιο δοκιμαστικό τρόπο από την αρχή..." #: library/unittest.mock-examples.rst:549 msgid "So, suppose we have some code that looks a little bit like this:" -msgstr "" +msgstr "Λοιπόν, υποθέτουμε ότι έχουμε κάποιο κώδικα που μοιάζει λίγο με αυτό:" #: library/unittest.mock-examples.rst:558 msgid "" @@ -541,6 +775,10 @@ msgid "" "``method()``? Specifically, we want to test that the code section ``# more " "code`` uses the response object in the correct way." msgstr "" +"Υποθέτοντας ότι το ``BackendProvider`` έχει ήδη δοκιμαστεί καλά, πώς " +"δοκιμάζουμε τη ``method()``; Συγκεκριμένα, θέλουμε να δοκιμάσουμε ότι η " +"ενότητα κώδικα ``# more code`` χρησιμοποιεί το αντικείμενο απόκρισης με τον " +"σωστό τρόπο." #: library/unittest.mock-examples.rst:562 msgid "" @@ -551,6 +789,14 @@ msgid "" "assume the object it returns is 'file-like', so we'll ensure that our " "response object uses the builtin :func:`open` as its ``spec``." msgstr "" +"Καθώς αυτή η αλυσίδα κλήσεων γίνεται από ένα χαρακτηριστικό στιγμιότυπου, " +"μπορούμε να επιδιορθώσουμε (monkey patch) το χαρακτηριστικό ``backend`` σε " +"ένα στιγμιότυπο ``Something``. Σε αυτή την συγκεκριμένη περίπτωση, μας " +"ενδιαφέρει μόνο η τιμή επιστροφής από την τελική κλήση στο ``start_call``, " +"οπότε δεν έχουμε πολλή διαμόρφωση να κάνουμε. Ας υποθέσουμε ότι το " +"αντικείμενο που επιστρέφει είναι 'σαν αρχείο', οπότε θα διασφαλίσουμε ότι το " +"αντικείμενο απόκρισης μας χρησιμοποιεί την ενσωματωμένη :func:`open` ως το " +"``spec`` της." #: library/unittest.mock-examples.rst:569 msgid "" @@ -558,18 +804,27 @@ msgid "" "response object for it. To set the response as the return value for that " "final ``start_call`` we could do this::" msgstr "" +"Για να το κάνουμε αυτό, δημιουργούμε ένα στιγμιότυπο προσομοίωσης ως το mock " +"backend μας και δημιουργούμε ένα αντικείμενο προσομοίωσης απόκρισης για " +"αυτό. Για να ορίσουμε την απόκριση ως την τιμή επιστροφής για εκείνο το " +"τελικό ``start_call``, θα μπορούσαμε να κάνουμε αυτό::" #: library/unittest.mock-examples.rst:573 msgid "" "mock_backend.get_endpoint.return_value.create_call.return_value.start_call." "return_value = mock_response" msgstr "" +"mock_backend.get_endpoint.return_value.create_call.return_value.start_call." +"return_value = mock_response" #: library/unittest.mock-examples.rst:575 msgid "" "We can do that in a slightly nicer way using the :meth:`~Mock." "configure_mock` method to directly set the return value for us::" msgstr "" +"Μπορούμε να το κάνουμε με έναν ελαφρώς πιο ωραίο τρόπο χρησιμοποιώντας τη :" +"meth:`~Mock.configure_mock` μέθοδο για να ορίσουμε απευθείας την τιμή " +"επιστροφής για εμάς::" #: library/unittest.mock-examples.rst:578 msgid "" @@ -580,18 +835,28 @@ msgid "" "return_value': mock_response}\n" ">>> mock_backend.configure_mock(**config)" msgstr "" +">>> something = Something()\n" +">>> mock_response = Mock(spec=open)\n" +">>> mock_backend = Mock()\n" +">>> config = {'get_endpoint.return_value.create_call.return_value.start_call." +"return_value': mock_response}\n" +">>> mock_backend.configure_mock(**config)" #: library/unittest.mock-examples.rst:584 msgid "" "With these we monkey patch the \"mock backend\" in place and can make the " "real call::" msgstr "" +"Με αυτά, επιδιορθώνουμε (monkey patch) το \"mock backend\" στη θέση του και " +"μπορούμε να κάνουμε την πραγματική κλήση::" #: library/unittest.mock-examples.rst:587 msgid "" ">>> something.backend = mock_backend\n" ">>> something.method()" msgstr "" +">>> something.backend = mock_backend\n" +">>> something.method()" #: library/unittest.mock-examples.rst:590 msgid "" @@ -600,6 +865,11 @@ msgid "" "be several entries in ``mock_calls``. We can use :meth:`call.call_list` to " "create this list of calls for us::" msgstr "" +"Με το χαρακτηριστικό :attr:`~Mock.mock_calls` μπορούμε να ελέγξουμε την " +"αλυσιδωτή κλήση με μια μοναδική δήλωση. Μια αλυσιδωτή κλήση είναι πολλές " +"κλήσεις σε μία γραμμή κώδικα, οπότε θα υπάρχουν πολλές εισαγωγές στο " +"``mock_calls``. Μπορούμε να χρησιμοποιήσουμε τη :meth:`call.call_list` για " +"να δημιουργήσουμε αυτή τη λίστα κλήσεων για εμάς::" #: library/unittest.mock-examples.rst:595 msgid "" @@ -608,10 +878,14 @@ msgid "" ">>> call_list = chained.call_list()\n" ">>> assert mock_backend.mock_calls == call_list" msgstr "" +">>> chained = call.get_endpoint('foobar').create_call('spam', 'eggs')." +"start_call()\n" +">>> call_list = chained.call_list()\n" +">>> assert mock_backend.mock_calls == call_list" #: library/unittest.mock-examples.rst:601 msgid "Partial mocking" -msgstr "" +msgstr "Μερική προσομοίωση" #: library/unittest.mock-examples.rst:603 msgid "" @@ -621,6 +895,12 @@ msgid "" "written in C, so you cannot just monkey-patch out the static :meth:`datetime." "date.today` method." msgstr "" +"Για ορισμένες δοκιμές, μπορεί να θέλετε να προσομοιώσετε μια κλήση στη :meth:" +"`datetime.date.today` για να επιστρέψετε μια γνωστή ημερομηνία, αλλά δεν " +"θέλετε να αποτρέψετε τον κώδικα υπό δοκιμή από τη δημιουργία νέων " +"αντικειμένων ημερομηνίας. Δυστυχώς, η :class:`datetime.date` είναι γραμμένη " +"σε C, οπότε δεν μπορείτε απλώς να κάνετε monkey-patch στη στατική :meth:" +"`datetime.date.today` μέθοδο." #: library/unittest.mock-examples.rst:608 msgid "" @@ -628,6 +908,9 @@ msgid "" "through calls to the constructor to the real class (and returning real " "instances)." msgstr "" +"Αντίθετα, μπορείτε ουσιαστικά να τυλίξετε την κλάση ημερομηνίας με μια " +"προσομοίωση, ενώ περνάτε κλήσεις στον κατασκευαστή στην πραγματική κλάση " +"(και επιστρέφοντας πραγματικά στιγμιότυπα)." #: library/unittest.mock-examples.rst:612 msgid "" @@ -637,6 +920,12 @@ msgid "" "date. When the mock date class is called a real date will be constructed and " "returned by ``side_effect``. ::" msgstr "" +"Η :func:`patch decorator ` χρησιμοποιείται εδώ για να επιδιορθώσετε " +"την κλάση ημερομηνίας στο μοντέλο υπό δοκιμή. Το χαρακτηριστικό :attr:`~Mock." +"side_effect` στην προσομοίωση της κλάσης ημερομηνίας ρυθμίζεται στη συνέχεια " +"σε μια συνάρτηση λάμδα που επιστρέφει μια πραγματική ημερομηνία. Όταν " +"καλείται η προσομοίωση της κλάσης ημερομηνίας, θα κατασκευαστεί και θα " +"επιστραφεί μια πραγματική ημερομηνία από το ``side_effect``. ::" #: library/unittest.mock-examples.rst:618 msgid "" @@ -648,12 +937,22 @@ msgid "" "... assert mymodule.date.today() == date(2010, 10, 8)\n" "... assert mymodule.date(2009, 6, 8) == date(2009, 6, 8)" msgstr "" +">>> from datetime import date\n" +">>> with patch('mymodule.date') as mock_date:\n" +"... mock_date.today.return_value = date(2010, 10, 8)\n" +"... mock_date.side_effect = lambda *args, **kw: date(*args, **kw)\n" +"...\n" +"... assert mymodule.date.today() == date(2010, 10, 8)\n" +"... assert mymodule.date(2009, 6, 8) == date(2009, 6, 8)" #: library/unittest.mock-examples.rst:626 msgid "" "Note that we don't patch :class:`datetime.date` globally, we patch ``date`` " "in the module that *uses* it. See :ref:`where to patch `." msgstr "" +"Σημειώστε ότι δεν επιδιορθώνουμε παγκοσμίως την :class:`datetime.date`, αλλά " +"επιδιορθώνουμε την ``date`` στο μοντέλο που τη *χρησιμοποιεί*. Δείτε :ref:" +"`where to patch `." #: library/unittest.mock-examples.rst:629 msgid "" @@ -662,12 +961,21 @@ msgid "" "find yourself having to calculate an expected result using exactly the same " "algorithm as the code under test, which is a classic testing anti-pattern." msgstr "" +"Όταν καλείται το ``date.today()``, επιστρέφεται μια γνωστή ημερομηνία, αλλά " +"οι κλήσεις στον κατασκευαστή ``date(...)`` εξακολουθούν να επιστρέφουν " +"κανονικές ημερομηνίες. Χωρίς αυτό, μπορεί να βρεθείτε να πρέπει να " +"υπολογίσετε ένα αναμενόμενο αποτέλεσμα χρησιμοποιώντας ακριβώς τον ίδιο " +"αλγόριθμο με τον κώδικα υπό δοκιμή, που είναι ένα κλασικό αντι-μοτίβο " +"δοκιμών." #: library/unittest.mock-examples.rst:634 msgid "" "Calls to the date constructor are recorded in the ``mock_date`` attributes " "(``call_count`` and friends) which may also be useful for your tests." msgstr "" +"Οι κλήσεις στον κατασκευαστή ημερομηνίας καταγράφονται στα χαρακτηριστικά " +"του ``mock_date`` (``call_count`` και φίλοι), τα οποία μπορεί επίσης να " +"είναι χρήσιμα για τις δοκιμές σας." #: library/unittest.mock-examples.rst:637 msgid "" @@ -675,16 +983,23 @@ msgid "" "is discussed in `this blog entry `_." msgstr "" +"Ένας εναλλακτικός τρόπος αντιμετώπισης της προσομοίωσης ημερομηνιών ή άλλων " +"ενσωματωμένων κλάσεων, συζητείται σε `αυτή την καταχώρηση ιστολογίου " +"`_." #: library/unittest.mock-examples.rst:643 msgid "Mocking a Generator Method" -msgstr "" +msgstr "Προσομοίωση μιας Μεθόδου Γεννήτριας" #: library/unittest.mock-examples.rst:645 msgid "" "A Python generator is a function or method that uses the :keyword:`yield` " "statement to return a series of values when iterated over [#]_." msgstr "" +"Μια γεννήτρια Python είναι μια συνάρτηση ή μέθοδος που χρησιμοποιεί τη :" +"keyword:`yield` δήλωση για να επιστρέψει μια σειρά τιμών όταν γίνεται " +"επανάληψη πάνω της [#]_." #: library/unittest.mock-examples.rst:648 msgid "" @@ -693,15 +1008,23 @@ msgid "" "iteration is :meth:`~container.__iter__`, so we can mock this using a :class:" "`MagicMock`." msgstr "" +"Μια μέθοδος / συνάρτηση γεννήτριας καλείται για να επιστρέψει το αντικείμενο " +"γεννήτριας. Είναι το αντικείμενο γεννήτριας που στη συνέχεια " +"επαναλαμβάνεται. Η μέθοδος πρωτοκόλλου για την επανάληψη είναι η :meth:" +"`~container.__iter__`, οπότε μπορούμε να την προσομοιώσουμε χρησιμοποιώντας " +"μια :class:`MagicMock`." #: library/unittest.mock-examples.rst:653 msgid "" "Here's an example class with an \"iter\" method implemented as a generator:" msgstr "" +"Εδώ είναι ένα παράδειγμα κλάσης με μια μέθοδο \"iter\" που υλοποιείται ως " +"γεννήτρια:" #: library/unittest.mock-examples.rst:665 msgid "How would we mock this class, and in particular its \"iter\" method?" msgstr "" +"Πώς θα προσομοιώναμε αυτή την κλάση, και συγκεκριμένα τη μέθοδο της \"iter\";" #: library/unittest.mock-examples.rst:667 msgid "" @@ -709,6 +1032,9 @@ msgid "" "to :class:`list`), we need to configure the object returned by the call to " "``foo.iter()``." msgstr "" +"Για να διαμορφώσουμε τις τιμές που επιστρέφονται από την επανάληψη (ρητά " +"στην κλήση στη :class:`list`), πρέπει να διαμορφώσουμε το αντικείμενο που " +"επιστρέφεται από την κλήση στο ``foo.iter()``." #: library/unittest.mock-examples.rst:675 msgid "" @@ -718,10 +1044,15 @@ msgid "" "they are is: `Generator Tricks for Systems Programmers `_." msgstr "" +"Υπάρχουν επίσης εκφράσεις γεννητριών και πιο `προηγμένες χρήσεις `_ γεννητριών, αλλά δεν μας απασχολούν εδώ. " +"Μια πολύ καλή εισαγωγή στις γεννήτριες και πόσο ισχυρές είναι είναι: " +"`Generator Tricks for Systems Programmers `_." #: library/unittest.mock-examples.rst:683 msgid "Applying the same patch to every test method" -msgstr "" +msgstr "Εφαρμογή της ίδιας επιδιόρθωσης σε κάθε μέθοδο δοκιμής" #: library/unittest.mock-examples.rst:685 msgid "" @@ -732,6 +1063,13 @@ msgid "" "methods on the class. A test method is identified by methods whose names " "start with ``test``::" msgstr "" +"Εάν θέλετε να υπάρχουν πολλές επιδιορθώσεις για πολλαπλές μεθόδους δοκιμής, " +"ο προφανής τρόπος είναι να εφαρμόσετε τους διακοσμητές επιδιόρθωσης σε κάθε " +"μέθοδο. Αυτό μπορεί να φαίνεται σαν περιττή επανάληψη. Αντίθετα, μπορείτε να " +"χρησιμοποιήσετε την :func:`patch` (σε όλες τις διάφορες μορφές της) ως " +"διακοσμητή κλάσης. Αυτό εφαρμόζει τις επιδιορθώσεις σε όλες τις μεθόδους " +"δοκιμής στην κλάση. Μια μέθοδος δοκιμής αναγνωρίζεται από μεθόδους των " +"οποίων τα ονόματα ξεκινούν με ``test``::" #: library/unittest.mock-examples.rst:692 msgid "" @@ -752,6 +1090,22 @@ msgid "" ">>> MyTest('test_two').not_a_test()\n" "'something'" msgstr "" +">>> @patch('mymodule.SomeClass')\n" +"... class MyTest(unittest.TestCase):\n" +"...\n" +"... def test_one(self, MockSomeClass):\n" +"... self.assertIs(mymodule.SomeClass, MockSomeClass)\n" +"...\n" +"... def test_two(self, MockSomeClass):\n" +"... self.assertIs(mymodule.SomeClass, MockSomeClass)\n" +"...\n" +"... def not_a_test(self):\n" +"... return 'something'\n" +"...\n" +">>> MyTest('test_one').test_one()\n" +">>> MyTest('test_two').test_two()\n" +">>> MyTest('test_two').not_a_test()\n" +"'something'" #: library/unittest.mock-examples.rst:709 msgid "" @@ -759,6 +1113,9 @@ msgid "" "These allow you to move the patching into your ``setUp`` and ``tearDown`` " "methods. ::" msgstr "" +"Ένας εναλλακτικός τρόπος διαχείρισης των επιδιορθώσεων είναι η χρήση των :" +"ref:`start-and-stop`. Αυτά σας επιτρέπουν να μετακινήσετε την επιδιόρθωση " +"στις μεθόδους σας ``setUp`` και ``tearDown``. ::" #: library/unittest.mock-examples.rst:713 msgid "" @@ -775,6 +1132,18 @@ msgid "" "...\n" ">>> MyTest('test_foo').run()" msgstr "" +">>> class MyTest(unittest.TestCase):\n" +"... def setUp(self):\n" +"... self.patcher = patch('mymodule.foo')\n" +"... self.mock_foo = self.patcher.start()\n" +"...\n" +"... def test_foo(self):\n" +"... self.assertIs(mymodule.foo, self.mock_foo)\n" +"...\n" +"... def tearDown(self):\n" +"... self.patcher.stop()\n" +"...\n" +">>> MyTest('test_foo').run()" #: library/unittest.mock-examples.rst:726 msgid "" @@ -783,6 +1152,11 @@ msgid "" "exception is raised in the setUp then tearDown is not called. :meth:" "`unittest.TestCase.addCleanup` makes this easier::" msgstr "" +"Εάν χρησιμοποιήσετε αυτήν την τεχνική, πρέπει να διασφαλίσετε ότι η " +"επιδιόρθωση αναιρείται καλώντας το ``stop``. Αυτό μπορεί να είναι πιο " +"περίπλοκο από ό,τι μπορεί να νομίζετε, επειδή εάν γίνει raise μια εξαίρεση " +"στο setUp, τότε το tearDown δεν καλείται. Η :meth:`unittest.TestCase." +"addCleanup` καθιστά αυτό πιο εύκολο::" #: library/unittest.mock-examples.rst:731 msgid "" @@ -797,10 +1171,20 @@ msgid "" "...\n" ">>> MyTest('test_foo').run()" msgstr "" +">>> class MyTest(unittest.TestCase):\n" +"... def setUp(self):\n" +"... patcher = patch('mymodule.foo')\n" +"... self.addCleanup(patcher.stop)\n" +"... self.mock_foo = patcher.start()\n" +"...\n" +"... def test_foo(self):\n" +"... self.assertIs(mymodule.foo, self.mock_foo)\n" +"...\n" +">>> MyTest('test_foo').run()" #: library/unittest.mock-examples.rst:744 msgid "Mocking Unbound Methods" -msgstr "" +msgstr "Προσομοίωση Μη Δεσμευμένων Μεθόδων" #: library/unittest.mock-examples.rst:746 msgid "" @@ -815,6 +1199,17 @@ msgid "" "simple to patch out methods with a mock that having to create a real " "function becomes a nuisance." msgstr "" +"Μερικές φορές μια δοκιμή χρειάζεται να επιδιορθώσει μια *μη δεσμευμένη " +"μέθοδο*, που σημαίνει την επιδιόρθωση της μεθόδου στην κλάση αντί για το " +"στιγμιότυπο. Για να κάνετε δηλώσεις σχετικά με το ποια αντικείμενα καλούσαν " +"αυτή τη συγκεκριμένη μέθοδο, πρέπει να περάσετε το ``self`` ως πρώτο όρισμα. " +"Το πρόβλημα είναι ότι δεν μπορείτε να επιδιορθώσετε με μια προσομοίωση για " +"αυτό, επειδή αν αντικαταστήσετε μια μη δεσμευμένη μέθοδο με μια προσομοίωση, " +"δεν γίνεται δεσμευμένη μέθοδος όταν ανακτάται από το στιγμιότυπο, και έτσι " +"δεν περνάει το ``self``. Η λύση είναι να επιδιορθώσετε τη μη δεσμευμένη " +"μέθοδο με μια πραγματική συνάρτηση αντί για αυτό. Ο διακοσμητής :func:" +"`patch` το καθιστά τόσο απλό να επιδιορθώνετε μεθόδους με μια προσομοίωση " +"που η ανάγκη δημιουργίας μιας πραγματικής συνάρτησης γίνεται ενοχλητική." #: library/unittest.mock-examples.rst:756 msgid "" @@ -827,22 +1222,36 @@ msgid "" "instance. It will have ``self`` passed in as the first argument, which is " "exactly what was needed:" msgstr "" +"Εάν περάσετε το ``autospec=True`` στην επιδιόρθωση, τότε γίνεται η " +"επιδιόρθωση με ένα *πραγματικό* αντικείμενο συνάρτησης. Αυτό το αντικείμενο " +"συνάρτησης έχει την ίδια υπογραφή με αυτό που αντικαθιστά, αλλά αναθέτει σε " +"μια προσομοίωση κάτω από την κουκούλα. Ακόμα λαμβάνετε την προσομοίωσή σας " +"που δημιουργείται αυτόματα με ακριβώς τον ίδιο τρόπο όπως πριν. Αυτό που " +"σημαίνει, όμως, είναι ότι αν το χρησιμοποιήσετε για να επιδιορθώσετε μια μη " +"δεσμευμένη μέθοδο σε μια κλάση, η προσομοιωμένη συνάρτηση θα μετατραπεί σε " +"δεσμευμένη μέθοδο εάν ανακτηθεί από ένα στιγμιότυπο. Θα έχει το ``self`` που " +"περνάει ως πρώτο όρισμα, που είναι ακριβώς αυτό που χρειαζόταν:" #: library/unittest.mock-examples.rst:777 msgid "" "If we don't use ``autospec=True`` then the unbound method is patched out " "with a Mock instance instead, and isn't called with ``self``." msgstr "" +"Εάν δεν χρησιμοποιήσουμε το ``autospec=True``, τότε η μη δεσμευμένη μέθοδος " +"επιδιορθώνεται με ένα στιγμιότυπο Mock αντίθετα, και δεν καλείται με το " +"``self``." #: library/unittest.mock-examples.rst:782 msgid "Checking multiple calls with mock" -msgstr "" +msgstr "Έλεγχος πολλαπλών κλήσεων με προσομοίωση" #: library/unittest.mock-examples.rst:784 msgid "" "mock has a nice API for making assertions about how your mock objects are " "used." msgstr "" +"Η προσομοίωση έχει ένα ωραίο API για τη δημιουργία δηλώσεων σχετικά με το " +"πώς χρησιμοποιούνται τα αντικείμενα προσομοίωσής σας." #: library/unittest.mock-examples.rst:791 msgid "" @@ -850,6 +1259,9 @@ msgid "" "assert_called_once_with` method that also asserts that the :attr:`~Mock." "call_count` is one." msgstr "" +"Εάν η προσομοίωσή σας καλείται μόνο μία φορά, μπορείτε να χρησιμοποιήσετε " +"τη :meth:`~Mock.assert_called_once_with` μέθοδο που επίσης δηλώνει ότι το :" +"attr:`~Mock.call_count` είναι ένα." #: library/unittest.mock-examples.rst:803 msgid "" @@ -858,6 +1270,11 @@ msgid "" "times, and you want to make assertions about *all* those calls you can use :" "attr:`~Mock.call_args_list`:" msgstr "" +"Και οι δύο ``assert_called_with`` και ``assert_called_once_with`` κάνουν " +"δηλώσεις σχετικά με την *τελευταία* κλήση. Εάν η προσομοίωσή σας πρόκειται " +"να καλείται πολλές φορές, και θέλετε να κάνετε δηλώσεις σχετικά με *όλες* " +"αυτές τις κλήσεις, μπορείτε να χρησιμοποιήσετε το :attr:`~Mock." +"call_args_list`:" #: library/unittest.mock-examples.rst:815 msgid "" @@ -866,10 +1283,14 @@ msgid "" "``call_args_list``. This looks remarkably similar to the repr of the " "``call_args_list``:" msgstr "" +"Ο βοηθός :data:`call` καθιστά εύκολο να κάνετε δηλώσεις σχετικά με αυτές τις " +"κλήσεις. Μπορείτε να δημιουργήσετε μια λίστα με τις αναμενόμενες κλήσεις και " +"να τη συγκρίνετε με το ``call_args_list``. Αυτό μοιάζει αξιοσημείωτα με το " +"repr του ``call_args_list``:" #: library/unittest.mock-examples.rst:825 msgid "Coping with mutable arguments" -msgstr "" +msgstr "Αντιμετώπιση μεταβλητών ορισμάτων" #: library/unittest.mock-examples.rst:827 msgid "" @@ -879,12 +1300,19 @@ msgid "" "under test then you can no longer make assertions about what the values were " "when the mock was called." msgstr "" +"Μια άλλη κατάσταση που είναι σπάνια, αλλά μπορεί να σας δαγκώσει, είναι όταν " +"η προσομοίωσή σας καλείται με μεταβλητά ορίσματα. Το ``call_args`` και το " +"``call_args_list`` αποθηκεύουν *αναφορές* στα ορίσματα. Εάν τα ορίσματα " +"μεταβλητοποιηθούν από τον κώδικα υπό δοκιμή, τότε δεν μπορείτε πλέον να " +"κάνετε δηλώσεις σχετικά με το ποιες ήταν οι τιμές όταν κλήθηκε η προσομοίωση." #: library/unittest.mock-examples.rst:832 msgid "" "Here's some example code that shows the problem. Imagine the following " "functions defined in 'mymodule'::" msgstr "" +"Εδώ είναι μερικοί παραδείγματα κώδικα που δείχνουν το πρόβλημα. Φανταστείτε " +"τις παρακάτω συναρτήσεις ορισμένες στο 'mymodule'::" #: library/unittest.mock-examples.rst:835 msgid "" @@ -896,12 +1324,21 @@ msgid "" " frob(val)\n" " val.clear()" msgstr "" +"def frob(val):\n" +" pass\n" +"\n" +"def grob(val):\n" +" \"First frob and then clear val\"\n" +" frob(val)\n" +" val.clear()" #: library/unittest.mock-examples.rst:843 msgid "" "When we try to test that ``grob`` calls ``frob`` with the correct argument " "look what happens::" msgstr "" +"Όταν προσπαθήσουμε να δοκιμάσουμε ότι το ``grob`` καλεί το ``frob`` με το " +"σωστό όρισμα, δείτε τι συμβαίνει::" #: library/unittest.mock-examples.rst:846 msgid "" @@ -917,6 +1354,17 @@ msgid "" "AssertionError: Expected: (({6},), {})\n" "Called with: ((set(),), {})" msgstr "" +">>> with patch('mymodule.frob') as mock_frob:\n" +"... val = {6}\n" +"... mymodule.grob(val)\n" +"...\n" +">>> val\n" +"set()\n" +">>> mock_frob.assert_called_with({6})\n" +"Traceback (most recent call last):\n" +" ...\n" +"AssertionError: Expected: (({6},), {})\n" +"Called with: ((set(),), {})" #: library/unittest.mock-examples.rst:858 msgid "" @@ -924,6 +1372,9 @@ msgid "" "could then cause problems if you do assertions that rely on object identity " "for equality." msgstr "" +"Μια πιθανότητα θα ήταν για την προσομοίωση να αντιγράψει τα ορίσματα που " +"περνάτε. Αυτό θα μπορούσε στη συνέχεια να προκαλέσει προβλήματα εάν κάνετε " +"δηλώσεις που βασίζονται στην ταυτότητα αντικειμένου για την ισότητα." #: library/unittest.mock-examples.rst:862 msgid "" @@ -935,6 +1386,14 @@ msgid "" "methods for doing the assertion. Again a helper function sets this up for " "me. ::" msgstr "" +"Εδώ είναι μια λύση που χρησιμοποιεί τη λειτουργικότητα :attr:`~Mock." +"side_effect`. Εάν παρέχετε μια συνάρτηση ``side_effect`` για μια " +"προσομοίωση, τότε το ``side_effect`` θα κληθεί με τα ίδια ορίσματα με την " +"προσομοίωση. Αυτό μας δίνει μια ευκαιρία να αντιγράψουμε τα ορίσματα και να " +"τα αποθηκεύσουμε για μετέπειτα δηλώσεις. Σε αυτό το παράδειγμα, χρησιμοποιώ " +"*άλλη* προσομοίωση για να αποθηκεύσω τα ορίσματα, ώστε να μπορώ να " +"χρησιμοποιήσω τις μεθόδους προσομοίωσης για να κάνω τη δήλωση. Και πάλι, μια " +"βοηθητική συνάρτηση το ρυθμίζει για μένα. ::" #: library/unittest.mock-examples.rst:870 msgid "" @@ -959,6 +1418,26 @@ msgid "" ">>> new_mock.call_args\n" "call({6})" msgstr "" +">>> from copy import deepcopy\n" +">>> from unittest.mock import Mock, patch, DEFAULT\n" +">>> def copy_call_args(mock):\n" +"... new_mock = Mock()\n" +"... def side_effect(*args, **kwargs):\n" +"... args = deepcopy(args)\n" +"... kwargs = deepcopy(kwargs)\n" +"... new_mock(*args, **kwargs)\n" +"... return DEFAULT\n" +"... mock.side_effect = side_effect\n" +"... return new_mock\n" +"...\n" +">>> with patch('mymodule.frob') as mock_frob:\n" +"... new_mock = copy_call_args(mock_frob)\n" +"... val = {6}\n" +"... mymodule.grob(val)\n" +"...\n" +">>> new_mock.assert_called_with({6})\n" +">>> new_mock.call_args\n" +"call({6})" #: library/unittest.mock-examples.rst:891 msgid "" @@ -966,6 +1445,10 @@ msgid "" "new mock that we do the assertion on. The ``side_effect`` function makes a " "copy of the args and calls our ``new_mock`` with the copy." msgstr "" +"Το ``copy_call_args`` καλείται με την προσομοίωση που θα κληθεί. Επιστρέφει " +"μια νέα προσομοίωση στην οποία κάνουμε τη δήλωση. Η συνάρτηση " +"``side_effect`` κάνει ένα αντίγραφο των ορισμάτων και καλεί τη ``new_mock`` " +"με το αντίγραφο." #: library/unittest.mock-examples.rst:897 msgid "" @@ -973,6 +1456,9 @@ msgid "" "checking arguments at the point they are called. You can simply do the " "checking inside a ``side_effect`` function." msgstr "" +"Εάν η προσομοίωσή σας πρόκειται να χρησιμοποιηθεί μόνο μία φορά, υπάρχει " +"ένας ευκολότερος τρόπος ελέγχου των ορισμάτων στο σημείο που καλούνται. " +"Μπορείτε απλά να κάνετε τον έλεγχο μέσα σε μια ``side_effect`` συνάρτηση." #: library/unittest.mock-examples.rst:911 msgid "" @@ -980,6 +1466,9 @@ msgid "" "`MagicMock` that copies (using :func:`copy.deepcopy`) the arguments. Here's " "an example implementation:" msgstr "" +"Μια εναλλακτική προσέγγιση είναι να δημιουργήσετε μια υποκλάση της :class:" +"`Mock` ή :class:`MagicMock` που αντιγράφει (χρησιμοποιώντας τη :func:`copy." +"deepcopy`) τα ορίσματα. Εδώ είναι ένα παράδειγμα υλοποίησης:" #: library/unittest.mock-examples.rst:936 msgid "" @@ -988,10 +1477,14 @@ msgid "" "That means all children of a ``CopyingMock`` will also have the type " "``CopyingMock``." msgstr "" +"Όταν υποκλάσετε το ``Mock`` ή το ``MagicMock``, όλα τα δυναμικά " +"δημιουργημένα χαρακτηριστικά, και το ``return_value`` θα χρησιμοποιούν την " +"υποκλάση σας αυτόματα. Αυτό σημαίνει ότι όλα τα παιδιά ενός ``CopyingMock`` " +"θα έχουν επίσης τον τύπο ``CopyingMock``." #: library/unittest.mock-examples.rst:942 msgid "Nesting Patches" -msgstr "" +msgstr "Εμφωλευμένες Επιδιορθώσεις" #: library/unittest.mock-examples.rst:944 msgid "" @@ -999,6 +1492,9 @@ msgid "" "can end up with nested with statements indenting further and further to the " "right::" msgstr "" +"Η χρήση της επιδιόρθωσης ως διαχειριστής περιβάλλοντος είναι ωραία, αλλά αν " +"κάνετε πολλαπλές επιδιορθώσεις, μπορεί να καταλήξετε με επικαλυπτόμενες " +"δηλώσεις with που εσοχίζουν όλο και περισσότερο προς τα δεξιά::" #: library/unittest.mock-examples.rst:948 msgid "" @@ -1016,6 +1512,19 @@ msgid "" ">>> MyTest('test_foo').test_foo()\n" ">>> assert mymodule.Foo is original" msgstr "" +">>> class MyTest(unittest.TestCase):\n" +"...\n" +"... def test_foo(self):\n" +"... with patch('mymodule.Foo') as mock_foo:\n" +"... with patch('mymodule.Bar') as mock_bar:\n" +"... with patch('mymodule.Spam') as mock_spam:\n" +"... assert mymodule.Foo is mock_foo\n" +"... assert mymodule.Bar is mock_bar\n" +"... assert mymodule.Spam is mock_spam\n" +"...\n" +">>> original = mymodule.Foo\n" +">>> MyTest('test_foo').test_foo()\n" +">>> assert mymodule.Foo is original" #: library/unittest.mock-examples.rst:962 msgid "" @@ -1024,6 +1533,10 @@ msgid "" "method, ``create_patch``, puts the patch in place and returns the created " "mock for us::" msgstr "" +"Με τις λειτουργίες καθαρισμού του unittest και το :ref:`start-and-stop` " +"μπορούμε να επιτύχουμε το ίδιο αποτέλεσμα χωρίς την εμφωλευμένη εσοχή. Μια " +"απλή βοηθητική μέθοδος, ``create_patch``, τοποθετεί την επιδιόρθωση στη θέση " +"της και επιστρέφει την δημιουργημένη προσομοίωση για εμάς::" #: library/unittest.mock-examples.rst:967 msgid "" @@ -1048,16 +1561,39 @@ msgid "" ">>> MyTest('test_foo').run()\n" ">>> assert mymodule.Foo is original" msgstr "" +">>> class MyTest(unittest.TestCase):\n" +"...\n" +"... def create_patch(self, name):\n" +"... patcher = patch(name)\n" +"... thing = patcher.start()\n" +"... self.addCleanup(patcher.stop)\n" +"... return thing\n" +"...\n" +"... def test_foo(self):\n" +"... mock_foo = self.create_patch('mymodule.Foo')\n" +"... mock_bar = self.create_patch('mymodule.Bar')\n" +"... mock_spam = self.create_patch('mymodule.Spam')\n" +"...\n" +"... assert mymodule.Foo is mock_foo\n" +"... assert mymodule.Bar is mock_bar\n" +"... assert mymodule.Spam is mock_spam\n" +"...\n" +">>> original = mymodule.Foo\n" +">>> MyTest('test_foo').run()\n" +">>> assert mymodule.Foo is original" #: library/unittest.mock-examples.rst:990 msgid "Mocking a dictionary with MagicMock" -msgstr "" +msgstr "Προσομοίωση ενός λεξικού με το MagicMock" #: library/unittest.mock-examples.rst:992 msgid "" "You may want to mock a dictionary, or other container object, recording all " "access to it whilst having it still behave like a dictionary." msgstr "" +"Ίσως θέλετε να προσομοιώσετε ένα λεξικό ή άλλο αντικείμενο κοντέινερ, " +"καταγράφοντας όλη την πρόσβαση σε αυτό, ενώ εξακολουθεί να συμπεριφέρεται " +"σαν λεξικό." #: library/unittest.mock-examples.rst:995 msgid "" @@ -1065,6 +1601,10 @@ msgid "" "and using :data:`~Mock.side_effect` to delegate dictionary access to a real " "underlying dictionary that is under our control." msgstr "" +"Μπορούμε να το κάνουμε αυτό με την :class:`MagicMock`, η οποία θα " +"συμπεριφέρεται σαν λεξικό, και χρησιμοποιώντας το :data:`~Mock.side_effect` " +"για να αναθέσουμε την πρόσβαση στο λεξικό σε ένα πραγματικό υποκείμενο " +"λεξικό που είναι υπό τον έλεγχό μας." #: library/unittest.mock-examples.rst:999 msgid "" @@ -1073,18 +1613,28 @@ msgid "" "``side_effect`` is called with the key (and in the case of ``__setitem__`` " "the value too). We can also control what is returned." msgstr "" +"Όταν οι μέθοδοι :meth:`~object.__getitem__` και :meth:`~object.__setitem__` " +"του ``MagicMock`` μας καλούνται (κανονική πρόσβαση λεξικού), τότε το " +"``side_effect`` καλείται με το κλειδί (και στην περίπτωση του " +"``__setitem__`` και την τιμή επίσης). Μπορούμε επίσης να ελέγξουμε τι " +"επιστρέφεται." #: library/unittest.mock-examples.rst:1004 msgid "" "After the ``MagicMock`` has been used we can use attributes like :data:" "`~Mock.call_args_list` to assert about how the dictionary was used:" msgstr "" +"Μετά τη χρήση του ``MagicMock``, μπορούμε να χρησιμοποιήσουμε χαρακτηριστικά " +"όπως το :data:`~Mock.call_args_list` για να κάνουμε δηλώσεις σχετικά με το " +"πώς χρησιμοποιήθηκε το λεξικό:" #: library/unittest.mock-examples.rst:1020 msgid "" "An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " "the magic methods you specifically want:" msgstr "" +"Μια εναλλακτική λύση στη χρήση του ``MagicMock`` είναι να χρησιμοποιήσετε το " +"``Mock`` και να παρέχετε *μόνο* τις μαγικές μεθόδους που θέλετε συγκεκριμένα:" #: library/unittest.mock-examples.rst:1027 msgid "" @@ -1092,6 +1642,9 @@ msgid "" "*spec* (or *spec_set*) argument so that the ``MagicMock`` created only has " "dictionary magic methods available:" msgstr "" +"Μια *τρίτη* επιλογή είναι να χρησιμοποιήσετε το ``MagicMock`` αλλά περνώντας " +"το ``dict`` ως όρισμα *spec* (ή *spec_set*), έτσι ώστε το δημιουργημένο " +"``MagicMock`` να έχει διαθέσιμες μόνο τις μαγικές μεθόδους λεξικού:" #: library/unittest.mock-examples.rst:1035 msgid "" @@ -1099,22 +1652,31 @@ msgid "" "normal dictionary but recording the access. It even raises a :exc:`KeyError` " "if you try to access a key that doesn't exist." msgstr "" +"Με αυτές τις λειτουργίες side effect στη θέση τους, το ``mock`` θα " +"συμπεριφέρεται σαν ένα κανονικό λεξικό αλλά καταγράφοντας την πρόσβαση. " +"Ακόμα και κάνει raise μια :exc:`KeyError` εάν προσπαθήσετε να αποκτήσετε " +"πρόσβαση σε ένα κλειδί που δεν υπάρχει." #: library/unittest.mock-examples.rst:1054 msgid "" "After it has been used you can make assertions about the access using the " "normal mock methods and attributes:" msgstr "" +"Μετά τη χρήση του, μπορείτε να κάνετε δηλώσεις σχετικά με την πρόσβαση " +"χρησιμοποιώντας τις κανονικές μεθόδους και χαρακτηριστικά προσομοίωσης:" #: library/unittest.mock-examples.rst:1066 msgid "Mock subclasses and their attributes" -msgstr "" +msgstr "Υποκλάσεις Mock και τα χαρακτηριστικά τους" #: library/unittest.mock-examples.rst:1068 msgid "" "There are various reasons why you might want to subclass :class:`Mock`. One " "reason might be to add helper methods. Here's a silly example:" msgstr "" +"Υπάρχουν διάφοροι λόγοι για τους οποίους μπορεί να θέλετε να υποκλάσετε την :" +"class:`Mock`. Ένας λόγος μπορεί να είναι η προσθήκη βοηθητικών μεθόδων. Εδώ " +"είναι ένα ανόητο παράδειγμα:" #: library/unittest.mock-examples.rst:1084 msgid "" @@ -1125,6 +1687,13 @@ msgid "" "methods then they'll also be available on the attributes and return value " "mock of instances of your subclass." msgstr "" +"Η τυπική συμπεριφορά για τα στιγμιότυπα ``Mock`` είναι ότι τα χαρακτηριστικά " +"και οι επιστρεφόμενες τιμές προσομοιώσεων είναι του ίδιου τύπου με την " +"προσομοίωση στην οποία έχουν πρόσβαση. Αυτό διασφαλίζει ότι τα " +"χαρακτηριστικά ``Mock`` είναι ``Mocks`` και τα χαρακτηριστικά ``MagicMock`` " +"είναι ``MagicMocks`` [#]_. Έτσι, εάν υποκλάσετε για να προσθέσετε βοηθητικές " +"μεθόδους, τότε θα είναι επίσης διαθέσιμες στα χαρακτηριστικά και στην " +"επιστρεφόμενη τιμή προσομοίωσης των στιγμιότυπων της υποκλάσης σας." #: library/unittest.mock-examples.rst:1100 msgid "" @@ -1133,6 +1702,11 @@ msgid "" "adaptor `_. Having this applied to attributes too actually causes errors." msgstr "" +"Μερικές φορές αυτό είναι άβολο. Για παράδειγμα, `ένας χρήστης `_ υποκλάσει την προσομοίωση για να " +"δημιουργήσει έναν `προσαρμογέα Twisted `_. Η εφαρμογή αυτού και στα " +"χαρακτηριστικά προκαλεί πραγματικά σφάλματα." #: library/unittest.mock-examples.rst:1106 msgid "" @@ -1142,6 +1716,12 @@ msgid "" "signature is that it takes arbitrary keyword arguments (``**kwargs``) which " "are then passed onto the mock constructor:" msgstr "" +"``Mock`` (σε όλες τις παραλλαγές του) χρησιμοποιεί μια μέθοδο που ονομάζεται " +"``_get_child_mock`` για να δημιουργήσει αυτές τις \"υπο-προσομοιώσεις\" για " +"χαρακτηριστικά και επιστρεφόμενες τιμές. Μπορείτε να αποτρέψετε τη χρήση της " +"υποκλάσης σας για χαρακτηριστικά, υπερκαλύπτοντας αυτή τη μέθοδο. Η υπογραφή " +"είναι ότι λαμβάνει αυθαίρετα ορίσματα λέξεων-κλειδιών (``**kwargs``) που στη " +"συνέχεια περνιούνται στον κατασκευαστή προσομοιώσεων:" #: library/unittest.mock-examples.rst:1123 msgid "" @@ -1149,10 +1729,13 @@ msgid "" "callable variant because otherwise non-callable mocks couldn't have callable " "methods." msgstr "" +"Μια εξαίρεση σε αυτόν τον κανόνα είναι οι μη κλητές προσομοιώσεις. Τα " +"χαρακτηριστικά χρησιμοποιούν την κλητή παραλλαγή επειδή διαφορετικά οι μη " +"κλητές προσομοιώσεις δεν θα μπορούσαν να έχουν κλητές μεθόδους." #: library/unittest.mock-examples.rst:1129 msgid "Mocking imports with patch.dict" -msgstr "" +msgstr "Προσομοίωση εισαγωγών με το patch.dict" #: library/unittest.mock-examples.rst:1131 msgid "" @@ -1160,6 +1743,10 @@ msgid "" "inside a function. These are harder to mock because they aren't using an " "object from the module namespace that we can patch out." msgstr "" +"Μια κατάσταση όπου η προσομοίωση μπορεί να είναι δύσκολη είναι όταν έχετε " +"μια τοπική εισαγωγή μέσα σε μια συνάρτηση. Αυτές είναι πιο δύσκολες για " +"προσομοίωση επειδή δεν χρησιμοποιούν ένα αντικείμενο από το χώρο ονομάτων " +"του module που μπορούμε να επιδιορθώσουμε." #: library/unittest.mock-examples.rst:1135 msgid "" @@ -1170,6 +1757,13 @@ msgid "" "an unconditional local import (store the module as a class or module " "attribute and only do the import on first use)." msgstr "" +"Γενικά, οι τοπικές εισαγωγές πρέπει να αποφεύγονται. Κάποιες φορές γίνονται " +"για να αποτραπούν οι κυκλικές εξαρτήσεις, για τις οποίες υπάρχει *συνήθως* " +"ένας πολύ καλύτερος τρόπος για να λυθεί το πρόβλημα (αναδιαμόρφωση του " +"κώδικα) ή για να αποτραπούν τα \"προκαταβολικά κόστη\" καθυστερώντας την " +"εισαγωγή. Αυτό μπορεί επίσης να λυθεί με καλύτερους τρόπους από μια άνευ " +"όρων τοπική εισαγωγή (αποθηκεύστε το module ως χαρακτηριστικό κλάσης ή " +"module και κάντε την εισαγωγή μόνο στην πρώτη χρήση)." #: library/unittest.mock-examples.rst:1142 msgid "" @@ -1180,6 +1774,13 @@ msgid "" "in ``sys.modules``, so usually when you import something you get a module " "back. This need not be the case however." msgstr "" +"Ανεξάρτητα από αυτό, υπάρχει ένας τρόπος να χρησιμοποιήσετε το ``mock`` για " +"να επηρεάσετε τα αποτελέσματα μιας εισαγωγής. Η εισαγωγή ανακτά ένα " +"*αντικείμενο* από το λεξικό :data:`sys.modules`. Σημειώστε ότι ανακτά ένα " +"*αντικείμενο*, το οποίο δεν χρειάζεται να είναι ένα module. Η εισαγωγή ενός " +"module για πρώτη φορά έχει ως αποτέλεσμα τη τοποθέτηση ενός αντικειμένου " +"module στο ``sys.modules``, οπότε συνήθως όταν εισάγετε κάτι, λαμβάνετε πίσω " +"ένα module. Ωστόσο, αυτό δεν χρειάζεται να είναι η περίπτωση." #: library/unittest.mock-examples.rst:1149 msgid "" @@ -1189,28 +1790,39 @@ msgid "" "the with statement body is complete or ``patcher.stop()`` is called) then " "whatever was there previously will be restored safely." msgstr "" +"Αυτό σημαίνει ότι μπορείτε να χρησιμοποιήσετε το :func:`patch.dict` για να " +"τοποθετήσετε *προσωρινά* μια προσομοίωση στο :data:`sys.modules`. " +"Οποιεσδήποτε εισαγωγές ενώ αυτή η επιδιόρθωση είναι ενεργή θα ανακτούν την " +"προσομοίωση. Όταν ολοκληρωθεί η επιδιόρθωση (η διακοσμημένη συνάρτηση " +"εξέρχεται, το σώμα της δήλωσης with ολοκληρώνεται ή καλείται το ``patcher." +"stop()``), τότε ό,τι υπήρχε προηγουμένως θα αποκατασταθεί με ασφάλεια." #: library/unittest.mock-examples.rst:1155 msgid "Here's an example that mocks out the 'fooble' module." -msgstr "" +msgstr "Εδώ είναι ένα παράδειγμα που προσομοιώνει το module 'fooble'." #: library/unittest.mock-examples.rst:1167 msgid "" "As you can see the ``import fooble`` succeeds, but on exit there is no " "'fooble' left in :data:`sys.modules`." msgstr "" +"Όπως μπορείτε να δείτε, το ``import fooble`` πετυχαίνει, αλλά κατά την έξοδο " +"δεν παραμένει κανένα 'fooble' στο :data:`sys.modules`." #: library/unittest.mock-examples.rst:1170 msgid "This also works for the ``from module import name`` form:" -msgstr "" +msgstr "Αυτό λειτουργεί επίσης για τη μορφή ``from module import name``:" #: library/unittest.mock-examples.rst:1180 msgid "With slightly more work you can also mock package imports:" msgstr "" +"Με λίγη περισσότερη δουλειά, μπορείτε επίσης να προσομοιώσετε εισαγωγές " +"πακέτων:" #: library/unittest.mock-examples.rst:1193 msgid "Tracking order of calls and less verbose call assertions" msgstr "" +"Παρακολούθηση της σειράς κλήσεων και λιγότερο λεκτικές δηλώσεις κλήσεων" #: library/unittest.mock-examples.rst:1195 msgid "" @@ -1219,6 +1831,12 @@ msgid "" "doesn't allow you to track the order of calls between separate mock objects, " "however we can use :attr:`~Mock.mock_calls` to achieve the same effect." msgstr "" +"Η :class:`Mock` σας επιτρέπει να παρακολουθείτε τη *σειρά* των κλήσεων " +"μεθόδων στις προσομοιώσεις σας μέσω του χαρακτηριστικού :attr:`~Mock." +"method_calls`. Αυτό δεν σας επιτρέπει να παρακολουθείτε τη σειρά των κλήσεων " +"μεταξύ ξεχωριστών αντικειμένων προσομοίωσης, ωστόσο μπορούμε να " +"χρησιμοποιήσουμε το :attr:`~Mock.mock_calls` για να επιτύχουμε το ίδιο " +"αποτέλεσμα." #: library/unittest.mock-examples.rst:1200 msgid "" @@ -1227,12 +1845,20 @@ msgid "" "separate mocks from a parent one. Calls to those child mock will then all be " "recorded, in order, in the ``mock_calls`` of the parent:" msgstr "" +"Επειδή οι προσομοιώσεις παρακολουθούν τις κλήσεις σε υπο-προσομοιώσεις στο " +"``mock_calls``, και η πρόσβαση σε ένα αυθαίρετο χαρακτηριστικό μιας " +"προσομοίωσης δημιουργεί μια υπο-προσομοίωση, μπορούμε να δημιουργήσουμε τις " +"ξεχωριστές προσομοιώσεις μας από μια γονική. Οι κλήσεις σε αυτές τις υπο-" +"προσομοιώσεις θα καταγράφονται στη συνέχεια, με σειρά, στο ``mock_calls`` " +"της γονικής:" #: library/unittest.mock-examples.rst:1217 msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" msgstr "" +"Μπορούμε να κάνουμε δηλώσεις σχετικά με τις κλήσεις χρησιμοποιώντας το :attr:" +"`~Mock.mock_calls` στο διαχειριστικό mock, συμπεριλαμβανομένης της σειράς:" #: library/unittest.mock-examples.rst:1224 msgid "" @@ -1240,6 +1866,10 @@ msgid "" "attach them to a manager mock using the :meth:`~Mock.attach_mock` method. " "After attaching calls will be recorded in ``mock_calls`` of the manager. ::" msgstr "" +"Αν το ``patch`` δημιουργεί και τοποθετεί τις προσομοιώσεις σας, τότε " +"μπορείτε να τις επισυνάψετε σε μια διαχειριστική προσομοίωση χρησιμοποιώντας " +"τη μέθοδο :meth:`~Mock.attach_mock`. Μετά την επισύναψη, οι κλήσεις θα " +"καταγράφονται στο ``mock_calls`` του διαχειριστή. ::" #: library/unittest.mock-examples.rst:1228 msgid "" @@ -1258,6 +1888,20 @@ msgid "" "call.MockClass2(),\n" "call.MockClass2().bar()]" msgstr "" +">>> manager = MagicMock()\n" +">>> with patch('mymodule.Class1') as MockClass1:\n" +"... with patch('mymodule.Class2') as MockClass2:\n" +"... manager.attach_mock(MockClass1, 'MockClass1')\n" +"... manager.attach_mock(MockClass2, 'MockClass2')\n" +"... MockClass1().foo()\n" +"... MockClass2().bar()\n" +"\n" +"\n" +">>> manager.mock_calls\n" +"[call.MockClass1(),\n" +"call.MockClass1().foo(),\n" +"call.MockClass2(),\n" +"call.MockClass2().bar()]" #: library/unittest.mock-examples.rst:1243 msgid "" @@ -1267,12 +1911,19 @@ msgid "" "data:`call` object). If that sequence of calls are in :attr:`~Mock." "mock_calls` then the assert succeeds." msgstr "" +"Εάν έχουν γίνει πολλές κλήσεις, αλλά σας ενδιαφέρει μόνο μια συγκεκριμένη " +"ακολουθία από αυτές, τότε μια εναλλακτική είναι να χρησιμοποιήσετε τη " +"μέθοδο :meth:`~Mock.assert_has_calls`. Αυτή λαμβάνει μια λίστα κλήσεων " +"(κατασκευασμένη με το :data:`call` αντικείμενο). Εάν αυτή η ακολουθία " +"κλήσεων βρίσκεται στο :attr:`~Mock.mock_calls`, τότε η δήλωση πετυχαίνει." #: library/unittest.mock-examples.rst:1257 msgid "" "Even though the chained call ``m.one().two().three()`` aren't the only calls " "that have been made to the mock, the assert still succeeds." msgstr "" +"Ακόμα κι αν η αλυσιδωτή κλήση ``m.one().two().three()`` δεν είναι οι μόνες " +"κλήσεις που έχουν γίνει στην προσομοίωση, η δήλωση εξακολουθεί να πετυχαίνει." #: library/unittest.mock-examples.rst:1260 msgid "" @@ -1281,16 +1932,23 @@ msgid "" "about the order. In this case you can pass ``any_order=True`` to " "``assert_has_calls``:" msgstr "" +"Μερικές φορές μια προσομοίωση μπορεί να έχει γίνει πολλές κλήσεις σε αυτήν, " +"και σας ενδιαφέρει μόνο να κάνετε δηλώσεις για *μερικές* από αυτές τις " +"κλήσεις. Μπορεί να μην σας ενδιαφέρει καν η σειρά. Σε αυτή την περίπτωση, " +"μπορείτε να περάσετε το ``any_order=True`` στο ``assert_has_calls``:" #: library/unittest.mock-examples.rst:1272 msgid "More complex argument matching" -msgstr "" +msgstr "Πιο σύνθετη αντιστοίχιση ορισμάτων" #: library/unittest.mock-examples.rst:1274 msgid "" "Using the same basic concept as :data:`ANY` we can implement matchers to do " "more complex assertions on objects used as arguments to mocks." msgstr "" +"Χρησιμοποιώντας την ίδια βασική έννοια με το :data:`ANY`, μπορούμε να " +"υλοποιήσουμε αντιστοιχίσεις για να κάνουμε πιο σύνθετες δηλώσεις σχετικά με " +"αντικείμενα που χρησιμοποιούνται ως ορίσματα σε προσομοιώσεις." #: library/unittest.mock-examples.rst:1277 msgid "" @@ -1301,27 +1959,41 @@ msgid "" "attributes of this object then we can create a matcher that will check these " "attributes for us." msgstr "" +"Ας υποθέσουμε ότι αναμένουμε να περαστεί κάποιο αντικείμενο σε μια " +"προσομοίωση που κανονικά συγκρίνεται ως ίσο βάσει της ταυτότητας του " +"αντικειμένου (που είναι το προεπιλεγμένο της Python για καθορισμένες από τον " +"χρήστη κλάσεις). Για να χρησιμοποιήσουμε τη :meth:`~Mock." +"assert_called_with`, θα πρέπει να περάσουμε το ακριβώς ίδιο αντικείμενο. Εάν " +"μας ενδιαφέρουν μόνο μερικά από τα χαρακτηριστικά αυτού του αντικειμένου, " +"τότε μπορούμε να δημιουργήσουμε έναν αντιστοιχιστή που θα ελέγχει αυτά τα " +"χαρακτηριστικά για εμάς." #: library/unittest.mock-examples.rst:1284 msgid "" "You can see in this example how a 'standard' call to ``assert_called_with`` " "isn't sufficient:" msgstr "" +"Μπορείτε να δείτε σε αυτό το παράδειγμα πώς μια 'τυπική' κλήση στο " +"``assert_called_with`` δεν είναι επαρκής:" #: library/unittest.mock-examples.rst:1300 msgid "" "A comparison function for our ``Foo`` class might look something like this:" msgstr "" +"Μια συνάρτηση σύγκρισης για την κλάση μας ``Foo`` μπορεί να μοιάζει κάπως " +"έτσι:" #: library/unittest.mock-examples.rst:1312 msgid "" "And a matcher object that can use comparison functions like this for its " "equality operation would look something like this:" msgstr "" +"Και ένα αντικείμενο αντιστοίχισης που μπορεί να χρησιμοποιεί συναρτήσεις " +"σύγκρισης όπως αυτή για τη λειτουργία ισότητας του θα μοιάζει κάπως έτσι:" #: library/unittest.mock-examples.rst:1323 msgid "Putting all this together:" -msgstr "" +msgstr "Βάζοντας όλα αυτά μαζί:" #: library/unittest.mock-examples.rst:1328 msgid "" @@ -1332,12 +2004,21 @@ msgid "" "``assert_called_with`` passes, and if they don't an :exc:`AssertionError` is " "raised:" msgstr "" +"Το ``Matcher`` δημιουργείται με τη συνάρτηση σύγκρισης και το αντικείμενο " +"που θέλουμε να συγκρίνουμε. Στο ``assert_called_with``, θα κληθεί η μέθοδος " +"ισότητας του ``Matcher``, η οποία συγκρίνει το αντικείμενο με το οποίο " +"κλήθηκε η προσομοίωση με αυτό που δημιουργήσαμε τον αντιστοιχιστή μας. Εάν " +"ταιριάζουν, τότε το ``assert_called_with`` περνάει, και αν δεν ταιριάζουν, " +"γίνεται raise μια :exc:`AssertionError`:" #: library/unittest.mock-examples.rst:1341 msgid "" "With a bit of tweaking you could have the comparison function raise the :exc:" "`AssertionError` directly and provide a more useful failure message." msgstr "" +"Με λίγη τροποποίηση, θα μπορούσατε να κάνετε τη συνάρτηση σύγκρισης να κάνει " +"raise απευθείας την :exc:`AssertionError` και να παρέχει ένα πιο χρήσιμο " +"μήνυμα αποτυχίας." #: library/unittest.mock-examples.rst:1344 msgid "" @@ -1347,3 +2028,9 @@ msgid "" "integration.match_equality `_)." msgstr "" +"Από την έκδοση 1.5, η βιβλιοθήκη δοκιμών Python `PyHamcrest `_ παρέχει παρόμοια λειτουργικότητα, που μπορεί " +"να είναι χρήσιμη εδώ, με τη μορφή του αντιστοιχιστή ισότητας (`hamcrest." +"library.integration.match_equality `_)." From 9b5375ff78b650bc58309b776f0c9d9d3fd53aec Mon Sep 17 00:00:00 2001 From: mgiannopoulos24 <79588074+mgiannopoulos24@users.noreply.github.com> Date: Sun, 18 Jan 2026 03:01:21 +0200 Subject: [PATCH 2/2] Fix typo --- library/unittest.mock-examples.po | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index 931751d4..f89c3e33 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -1857,8 +1857,9 @@ msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" msgstr "" -"Μπορούμε να κάνουμε δηλώσεις σχετικά με τις κλήσεις χρησιμοποιώντας το :attr:" -"`~Mock.mock_calls` στο διαχειριστικό mock, συμπεριλαμβανομένης της σειράς:" +"Μπορούμε στη συνέχεια να κάνουμε δηλώσεις σχετικά με τις κλήσεις, " +"συμπεριλαμβανομένης της σειράς, συγκρίνοντας με το χαρακτηριστικό " +"``mock_calls`` στην προσομοίωση διαχειριστή:" #: library/unittest.mock-examples.rst:1224 msgid ""