[chronojump] chronojump-importer: avoids duplicates on Jumps, JumpRj and PersonSession77.



commit f63eec30ba5219aa70be190673924c8915e14612
Author: Carles Pina i Estany <carles pina cat>
Date:   Tue Nov 1 23:30:05 2016 +0100

    chronojump-importer: avoids duplicates on Jumps, JumpRj and PersonSession77.
    
    This happened when a user imported a session into an existing session
    (specially if the user did it multiple times).

 src/chronojump-importer/chronojump_importer.py     |    9 ++++++---
 .../chronojump_importer_test.py                    |    4 ++--
 .../tests/yoyo-expected-session-4-to-5.sqlite      |  Bin 1503232 -> 1502208 bytes
 src/chronojump-importer/tests/yoyo-expected.sqlite |  Bin 1408000 -> 1408000 bytes
 4 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/src/chronojump-importer/chronojump_importer.py b/src/chronojump-importer/chronojump_importer.py
index b83f400..70c5d8f 100755
--- a/src/chronojump-importer/chronojump_importer.py
+++ b/src/chronojump-importer/chronojump_importer.py
@@ -473,7 +473,7 @@ class ImportSession:
         jump_rj.update_session_ids(self.new_session_id)
         jump_rj.update_ids("type", jump_rj, "old_name", "new_name")
 
-        self.destination_db.write(table=jump_rj, matches_columns=None)
+        self.destination_db.write(table=jump_rj, matches_columns=["type", "tvMax", "tcMax", "fall", 
"weight", "description", "tvAvg", "tcAvg", "tvString", "tcString", "jumps", "time", "limited", "angleString", 
"simulated"])
 
         # Imports Jump table (with the new Person77's uniqueIDs)
         jump = self.source_db.read(table_name="Jump",
@@ -483,7 +483,7 @@ class ImportSession:
         jump.update_session_ids(self.new_session_id)
         jump.update_ids("type", jump_types, "old_name", "new_name")
 
-        self.destination_db.write(table=jump, matches_columns=None)
+        self.destination_db.write(table=jump, matches_columns=["type", "tv", "tc", "fall", "weight", 
"description", "angle", "simulated"])
 
     def _import_runs(self):
         # Imports RunTypes table
@@ -537,7 +537,10 @@ class ImportSession:
                                                 
where_condition="PersonSession77.sessionID={}".format(self.source_session))
         person_session_77.update_ids("personID", self.persons77, "uniqueID", "new_uniqueID")
         person_session_77.update_session_ids(self.new_session_id)
-        self.destination_db.write(table=person_session_77, matches_columns=None)
+
+        # Inserts the person_session_77 table but not for personsIDs that already existed in this session. 
This is
+        # the case if a user imports a session into an existing session and the persons would be already 
imported.
+        self.destination_db.write(table=person_session_77, matches_columns=["personID"])
 
     def _import_encoder(self):
         # Imports EncoderExercise
diff --git a/src/chronojump-importer/chronojump_importer_test.py 
b/src/chronojump-importer/chronojump_importer_test.py
index b5b8d45..bbedce7 100755
--- a/src/chronojump-importer/chronojump_importer_test.py
+++ b/src/chronojump-importer/chronojump_importer_test.py
@@ -57,7 +57,7 @@ class TestImporter(unittest.TestCase):
         {'base_filename': 'yoyo-{}.sqlite', 'source_session': 4, 'destination_session': 5}
     )
     def test_importer_generic(self, data):
-        re_creates_test = False  # During development change it to True
+        re_creates_test = True   # During development change it to True
                                  # to execute the tests and copy the new
                                  # result as expected test
 
@@ -85,7 +85,7 @@ class TestImporter(unittest.TestCase):
         actual_file.close()
         expected_file.close()
 
-        diff = difflib.unified_diff(actual_dump, expected_dump)
+        diff = difflib.unified_diff(expected_dump, actual_dump)
         diff = "".join(diff)
 
         if diff != "":
diff --git a/src/chronojump-importer/tests/yoyo-expected-session-4-to-5.sqlite 
b/src/chronojump-importer/tests/yoyo-expected-session-4-to-5.sqlite
index e470dbc..adf65ed 100644
Binary files a/src/chronojump-importer/tests/yoyo-expected-session-4-to-5.sqlite and 
b/src/chronojump-importer/tests/yoyo-expected-session-4-to-5.sqlite differ
diff --git a/src/chronojump-importer/tests/yoyo-expected.sqlite 
b/src/chronojump-importer/tests/yoyo-expected.sqlite
index a8c956d..4dd261e 100644
Binary files a/src/chronojump-importer/tests/yoyo-expected.sqlite and 
b/src/chronojump-importer/tests/yoyo-expected.sqlite differ


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]