|
1 | 1 | """Tests for pystac.tests.extensions.scientific."""
|
2 | 2 |
|
3 | 3 | import datetime
|
| 4 | +from pystac.link import Link |
4 | 5 | from pystac.collection import Summaries
|
5 | 6 | import unittest
|
6 | 7 | from typing import List, Optional
|
7 | 8 |
|
8 | 9 | import pystac
|
9 | 10 | from pystac.extensions import scientific
|
10 |
| -from pystac.extensions.scientific import ScientificExtension, ScientificRelType |
| 11 | +from pystac.extensions.scientific import ( |
| 12 | + Publication, |
| 13 | + ScientificExtension, |
| 14 | + ScientificRelType, |
| 15 | + remove_link, |
| 16 | +) |
11 | 17 |
|
12 | 18 | URL_TEMPLATE = "http://example.com/catalog/%s.json"
|
13 | 19 |
|
@@ -41,6 +47,28 @@ def make_item() -> pystac.Item:
|
41 | 47 | return item
|
42 | 48 |
|
43 | 49 |
|
| 50 | +class TestRemoveLinks(unittest.TestCase): |
| 51 | + def test_remove_none_doi(self) -> None: |
| 52 | + """Calling remove_link with doi = None should have no effect.""" |
| 53 | + link = Link( |
| 54 | + rel=ScientificRelType.CITE_AS, |
| 55 | + target="https://some-domain.com/some/paper.pdf", |
| 56 | + ) |
| 57 | + links = [link] |
| 58 | + |
| 59 | + remove_link(links, doi=None) |
| 60 | + |
| 61 | + self.assertEqual(len(links), 1) |
| 62 | + self.assertIn(link, links) |
| 63 | + |
| 64 | + |
| 65 | +class TestPublication(unittest.TestCase): |
| 66 | + def test_get_link_returns_none_if_no_doi(self) -> None: |
| 67 | + pub = Publication(None, CITATION) |
| 68 | + |
| 69 | + self.assertIsNone(pub.get_link()) |
| 70 | + |
| 71 | + |
44 | 72 | class ItemScientificExtensionTest(unittest.TestCase):
|
45 | 73 | def setUp(self) -> None:
|
46 | 74 | super().setUp()
|
|
0 commit comments