コード例 #1
0
 def check_update(self):
     self.new_timestamp = (self.base_timestamp +
                           relativedelta(years=10)).isoformat()
     self.init_mock_loader()
     importer = Importer(self.loader, force_singlethread=True)
     importer.update(self.body_id)
     for table, count in self.tables.items():
         self.assertEqual(
             table.objects.count(),
             count,
             "{}: {} vs. {}".format(table, count, table.objects.all()),
         )
     self.assertEqual(File.objects.count(), 6)
コード例 #2
0
def import_update(body_id: Optional[str] = None,
                  ignore_modified: bool = False) -> None:
    from importer.importer import Importer

    if body_id:
        bodies = Body.objects.filter(oparl_id=body_id).all()
    else:
        bodies = Body.objects.filter(oparl_id__isnull=False).all()
    for body in bodies:
        logger.info("Updating body {}: {}".format(body, body.oparl_id))
        loader = get_loader_from_body(body.oparl_id)
        importer = Importer(loader, body, ignore_modified=ignore_modified)
        importer.update(body.oparl_id)
        importer.force_singlethread = True
        importer.load_files(body.short_name)
コード例 #3
0
    def check_deletion(self):
        self.new_timestamp = (self.base_timestamp +
                              relativedelta(years=200)).isoformat()
        self.delete = True
        self.init_mock_loader()
        importer = Importer(self.loader, force_singlethread=True)
        importer.update(self.body_id)
        for table, count in self.tables.items():
            # It doesn't make sense if our Body was deleted
            if table == Body:
                continue

            # We use minus one because we only deleted the top level objects
            self.assertEqual(table.objects.count(), count - 1,
                             f"{table} {table.objects.all()}")
コード例 #4
0
 def check_ignoring_unmodified(self):
     """ Check that not-modified objects are ignored """
     tables_with_modified = [
         Body,
         Organization,
         Person,
         Meeting,
         Paper,
         File,
     ]  # must have modified and File for #41
     newer_now = timezone.now()
     importer = Importer(self.loader, force_singlethread=True)
     importer.update(self.body_id)
     for table in tables_with_modified:
         logger.debug(table.__name__)
         self.assertLess(table.objects.first().modified, newer_now)
コード例 #5
0
    def test_update_without_change_is_ignored(self):
        loader = build_mock_loader()
        importer = Importer(loader, force_singlethread=True)
        importer.run(self.body["id"])
        [paper] = Paper.objects.all()
        self.assertEqual(paper.history.count(), 1)

        # The "updated" list still contains the same paper object
        importer.update(self.body["id"])
        [paper] = Paper.objects.all()
        self.assertEqual(paper.history.count(), 1)

        # Consistency check: The count is increased if there is actual change
        update(loader)
        importer.update(self.body["id"])
        [paper] = Paper.objects.all()
        self.assertEqual(paper.history.count(), 2)
コード例 #6
0
    def test_embedded_update(self):
        loader = build_mock_loader()
        importer = Importer(loader, force_singlethread=True)
        importer.run(self.body["id"])
        paper_id = make_paper([])["id"]
        self.assertEqual(Paper.objects.count(), 1)
        file_ids = Paper.by_oparl_id(paper_id).files.values_list("oparl_id",
                                                                 flat=True)
        self.assertEqual(
            sorted(file_ids),
            [make_file(0)["id"], make_file(1)["id"]])
        self.assertEqual(File.objects.count(), 2)

        update(loader)
        importer.update(self.body["id"])
        self.assertEqual(Paper.objects.count(), 1)
        self.assertEqual(File.objects.count(), 2)
        file_ids = Paper.by_oparl_id(paper_id).files.values_list("oparl_id",
                                                                 flat=True)
        self.assertEqual(
            sorted(file_ids),
            [make_file(1)["id"], make_file(2)["id"]])
        self.assertEqual(File.objects_with_deleted.count(), 3)