Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/test_storage.py
# Copyright (C) 2015 The Software Heritage developers | # Copyright (C) 2015-2016 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import datetime | import datetime | ||||
import os | import os | ||||
import psycopg2 | import psycopg2 | ||||
import shutil | import shutil | ||||
▲ Show 20 Lines • Show All 1,070 Lines • ▼ Show 20 Lines | def origin_get(self): | ||||
self.assertEqual(actual_origin1, {'id': id, | self.assertEqual(actual_origin1, {'id': id, | ||||
'type': self.origin['type'], | 'type': self.origin['type'], | ||||
'url': self.origin['url'], | 'url': self.origin['url'], | ||||
'lister': None, | 'lister': None, | ||||
'project': None}) | 'project': None}) | ||||
@istest | @istest | ||||
def origin_visit_get(self): | def origin_visit(self): | ||||
# 1- given | # 1. origin_visit_add | ||||
olasd: It'd be clearer if the tests were split between the add and update functions. | |||||
Done Inline ActionsI'm on it. ardumont: I'm on it. | |||||
self.assertIsNone(self.storage.origin_get(self.origin2)) | self.assertIsNone(self.storage.origin_get(self.origin2)) | ||||
self.storage.content_add([self.cont2]) | |||||
self.storage.directory_add([self.dir2]) | |||||
self.storage.revision_add([self.revision2, self.revision3]) | |||||
origin_id = self.storage.origin_add_one(self.origin2) | origin_id = self.storage.origin_add_one(self.origin2) | ||||
self.assertIsNotNone(origin_id) | |||||
# occurrence2 points to 'revision2' with branch 'master', we | origin_visit1 = self.storage.origin_visit_add( | ||||
# need to point to the right origin | origin_id, | ||||
occurrence2 = self.occurrence2.copy() | ts=self.occurrence2['date']) | ||||
occurrence2.update({'origin': origin_id, | |||||
'date': occurrence2['date']}) | |||||
dt = datetime.timedelta(days=1) | |||||
occurrence3 = self.occurrence2.copy() | |||||
occurrence3.update({'origin': origin_id, | |||||
'date': occurrence3['date'] + dt, | |||||
'target': self.revision3['id']}) | |||||
# 2 occurrences on same revision with lower validity date with 1h delta | self.assertEquals(origin_visit1['origin'], origin_id) | ||||
self.storage.occurrence_add([occurrence2]) | self.assertIsNotNone(origin_visit1['visit']) | ||||
self.assertTrue(origin_visit1['visit'] > 0) | |||||
# when | # 2. origin_visit_get | ||||
actual_origin_visits = list(self.storage.origin_visit_get(origin_id)) | actual_origin_visits = list(self.storage.origin_visit_get(origin_id)) | ||||
self.assertEquals(len(actual_origin_visits), 1) | self.assertEquals(len(actual_origin_visits), 1) | ||||
self.assertEquals(actual_origin_visits, | self.assertEquals(actual_origin_visits, | ||||
[{ | [{ | ||||
'origin': origin_id, | 'origin': origin_id, | ||||
'date': occurrence2['date'], | 'date': self.occurrence2['date'], | ||||
'visit': 1 | 'visit': origin_visit1['origin'], | ||||
'status': 'ongoing', | |||||
}]) | }]) | ||||
# 3. origin_visit_update | |||||
# Now updating the first visit to state full | |||||
self.storage.origin_visit_update(origin_id, origin_visit1['visit'], | |||||
status='full') | |||||
# 2- given | # 2- given | ||||
self.storage.occurrence_add([occurrence3]) | origin_visit2 = self.storage.origin_visit_add( | ||||
origin_id, | |||||
ts=self.occurrence3['date']) | |||||
self.assertEquals(origin_visit2['origin'], origin_id) | |||||
self.assertIsNotNone(origin_visit2['visit']) | |||||
self.assertTrue(origin_visit2['visit'] > 0) | |||||
# when | # when | ||||
actual_origin_visits = list(self.storage.origin_visit_get(origin_id)) | actual_origin_visits = list(self.storage.origin_visit_get(origin_id)) | ||||
self.assertEquals(len(actual_origin_visits), 2) | self.assertEquals(len(actual_origin_visits), 2) | ||||
self.assertEquals(actual_origin_visits, | self.assertEquals(actual_origin_visits, | ||||
[{ | [{ | ||||
'origin': origin_id, | 'origin': origin_visit2['origin'], | ||||
'date': occurrence2['date'], | 'date': self.occurrence2['date'], | ||||
'visit': 1 | 'visit': origin_visit1['visit'], | ||||
'status': 'full' | |||||
}, { | }, { | ||||
'origin': origin_id, | 'origin': origin_visit2['origin'], | ||||
'date': occurrence3['date'], | 'date': self.occurrence3['date'], | ||||
'visit': 2 | 'visit': origin_visit2['visit'], | ||||
'status': 'ongoing' | |||||
}]) | }]) | ||||
@istest | @istest | ||||
def occurrence_add(self): | def occurrence_add(self): | ||||
origin_id = self.storage.origin_add_one(self.origin2) | origin_id = self.storage.origin_add_one(self.origin2) | ||||
revision = self.revision.copy() | revision = self.revision.copy() | ||||
revision['id'] = self.occurrence['target'] | revision['id'] = self.occurrence['target'] | ||||
▲ Show 20 Lines • Show All 444 Lines • Show Last 20 Lines |
It'd be clearer if the tests were split between the add and update functions.