diff --git a/dbrepo-auth-service/init/.coveragerc b/dbrepo-auth-service/init/.coveragerc index 35271a237a7e1c5f3fe0d1d9bda277fb12611efd..a387be84259ecf1c8b1387a407e3cfc528960a30 100644 --- a/dbrepo-auth-service/init/.coveragerc +++ b/dbrepo-auth-service/init/.coveragerc @@ -1,5 +1,4 @@ [report] -format = text omit = # omit tests ./tests/* @@ -7,4 +6,4 @@ omit = ./omlib/* [html] -directory = htmlcov \ No newline at end of file +directory = htmlcov diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java index 9c6223e41fc1577fee582841f6b9828fdcd1ae05..458dcec7ebb282ff5abc703668aa8010ca3e5d97 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java @@ -27,7 +27,7 @@ public class Container { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false) @@ -84,4 +84,11 @@ public class Container { @Column private String privilegedPassword; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java index ca3f4b44dd4440a95db9954b3382b04fe3dd8071..336a278d7d8ff6f2f4d2b56ebbde1f156e198659 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java @@ -13,8 +13,6 @@ import java.time.Instant; import java.util.List; import java.util.UUID; -import static jakarta.persistence.GenerationType.IDENTITY; - @Data @Entity @Builder @@ -31,7 +29,7 @@ public class ContainerImage { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false) @@ -81,4 +79,11 @@ public class ContainerImage { @OneToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL, CascadeType.PERSIST}, mappedBy = "image") private List<Operator> operators; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java index d201fd887ecef6bf8382e99f768bf0846b49bb0a..347ca47e960e74f846eea32b3ddc166e3a0efc0e 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java @@ -7,8 +7,6 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener; import java.util.UUID; -import static jakarta.persistence.GenerationType.IDENTITY; - @Data @Entity @Builder @@ -22,7 +20,7 @@ public class DataType { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(name = "display_name", nullable = false) @@ -78,4 +76,11 @@ public class DataType { }) private ContainerImage image; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java index 1fd23da83d8796354673d1cadf175d1efe24b3ae..adeb6dd8ef7c977222021d3c1b0fdb54fb304a17 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java @@ -20,7 +20,7 @@ public class Operator { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(name = "display_name", nullable = false) @@ -40,4 +40,11 @@ public class Operator { }) private ContainerImage image; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java index e640ecc90dad5f91155d5660dc17b9cc076e89e1..41e161dbe4def45425b1dfdffa677729f5306d78 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java @@ -43,7 +43,7 @@ public class Database implements Serializable { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @JdbcTypeCode(java.sql.Types.VARCHAR) @@ -131,4 +131,11 @@ public class Database implements Serializable { @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java index 6903bc5565666bcbb6ca95c5c40d8a45d68bc2d1..3fd8fd06c8e1488b2d69e3add3dbac6277478f7e 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java @@ -36,7 +36,7 @@ public class View { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @ToString.Exclude @@ -108,4 +108,11 @@ public class View { @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java index 0ae40ec2b829ae6694028a13f78500455faaae3f..2b18132e8cca75d05ee203143a5dbba40eabf21f 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java @@ -25,7 +25,7 @@ public class ViewColumn implements Comparable<ViewColumn> { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @ToString.Exclude @@ -62,4 +62,11 @@ public class ViewColumn implements Comparable<ViewColumn> { public int compareTo(ViewColumn viewColumn) { return Integer.compare(this.ordinalPosition, viewColumn.getOrdinalPosition()); } + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java index f3508f71170a835b399338cd938e599e35e884ba..1e2aa72b924cdd6c1a37aa5c98f64728ba92fc20 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java @@ -39,7 +39,7 @@ public class Table { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(updatable = false, nullable = false) @@ -128,5 +128,12 @@ public class Table { @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java index bbbf2943ee7c84aa2bcc67c97ec729c5e90a797c..8d169590626f2ee4e07694938d49f0bf17ae36af 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java @@ -34,7 +34,7 @@ public class TableColumn implements Comparable<TableColumn> { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @ToString.Exclude @@ -131,4 +131,11 @@ public class TableColumn implements Comparable<TableColumn> { public int compareTo(TableColumn tableColumn) { return Integer.compare(this.ordinalPosition, tableColumn.getOrdinalPosition()); } + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java index 63eb5c67683281eed7238aa6de5c63b55896fdf1..edf39d84e36a41fdf9d783fb3c5fdaea4fd920cf 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java @@ -32,7 +32,7 @@ public class TableColumnConcept { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(updatable = false, nullable = false, columnDefinition = "TEXT") @@ -59,4 +59,11 @@ public class TableColumnConcept { }, joinColumns = @JoinColumn(name = "id", referencedColumnName = "id")) private List<TableColumn> columns; + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java index 02649c1760a223b65473aafef2483a268219132e..9d48062d33a3489892fee857b0c06440336e362c 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java @@ -32,7 +32,7 @@ public class TableColumnUnit { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(updatable = false, nullable = false, columnDefinition = "TEXT") @@ -59,4 +59,11 @@ public class TableColumnUnit { }, joinColumns = @JoinColumn(name = "id", referencedColumnName = "id")) private List<TableColumn> columns; + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java index 955a7d5b76048c72dc2cd90d8eba2b6127b7206b..92271b32328ed66215311389de57413b722d5ebe 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java @@ -22,7 +22,7 @@ public class ForeignKey { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(name = "fkid", nullable = false, columnDefinition = "VARCHAR(36)") + @Column(name = "fkid", nullable = false, columnDefinition = "VARCHAR(36) DEFAULT UUID()") private UUID id; @Column(updatable = false, nullable = false) @@ -54,4 +54,11 @@ public class ForeignKey { @Column(columnDefinition = "VARCHAR(50)") @Enumerated(EnumType.STRING) private ReferenceType onDelete; + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java index 6b0d271498f9b1f46062adb0a53eab0112e0b494..850b25ac5ca3d156600c5c0b5be92663c33f2cca 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java @@ -25,7 +25,7 @@ public class ForeignKeyReference { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @ToString.Exclude @@ -48,4 +48,11 @@ public class ForeignKeyReference { }) private TableColumn referencedColumn; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java index 9a613ffac6dc849dc579c6779131780f553fd9a4..26e0f132991a5b8bf7a1b2f572575f8f6a48820f 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java @@ -22,7 +22,7 @@ public class PrimaryKey { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(name = "pkid", nullable = false, columnDefinition = "VARCHAR(36)") + @Column(name = "pkid", nullable = false, columnDefinition = "VARCHAR(36) DEFAULT UUID()") private UUID id; @ToString.Exclude @@ -42,4 +42,11 @@ public class PrimaryKey { @JoinColumn(name = "cid", referencedColumnName = "id", nullable = false) }) private TableColumn column; + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java index 7d7b7fdde5063c3436926217626e5f5cefcd1598..e1ad4c4c4d167bf5ccf21b33d5a22e67d424d988 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java @@ -23,7 +23,7 @@ public class Unique { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(name = "uid", nullable = false, columnDefinition = "VARCHAR(36)") + @Column(name = "uid", nullable = false, columnDefinition = "VARCHAR(36) DEFAULT UUID()") private UUID id; @Column(updatable = false, nullable = false) @@ -51,4 +51,11 @@ public class Unique { } ) private List<TableColumn> columns; + + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java index 2f7381fdde808db3386731aa7075a494f3c8e4ba..cdbcf797773cc2d7e9d7dbdecb6dc0fcb0d6afae 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java @@ -22,7 +22,7 @@ public class Creator { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(name = "given_names") @@ -106,4 +106,11 @@ public class Creator { return this.getFirstname().charAt(0) + ". " + this.getLastname(); } + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java index 96cd0ea46612c39042e3e28aa004b7d1790900d5..43dbb849e341c7aba5dbfc4a3097115ef1ce378b 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java @@ -40,7 +40,7 @@ public class Identifier implements Serializable { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(name = "qid", columnDefinition = "VARCHAR(36)") @@ -176,6 +176,13 @@ public class Identifier implements Serializable { @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java index af97bc150162df2983b64dab7b0c8222c5c215c3..32adddccfc7c73750a1fd516edc6c4638d150739 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java @@ -24,7 +24,7 @@ public class IdentifierDescription implements Serializable { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false, columnDefinition = "TEXT") @@ -45,6 +45,13 @@ public class IdentifierDescription implements Serializable { }) private Identifier identifier; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java index 3227ab08560455dfbf8fcd669ae5f2b9ec4c8887..5b69b2e8f70a947dad40460609b0ee5ffc530dfa 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java @@ -23,7 +23,7 @@ public class IdentifierFunder implements Serializable { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false) @@ -52,6 +52,13 @@ public class IdentifierFunder implements Serializable { }) private Identifier identifier; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java index 10aff720cb30809e763423d279447909deec4830..769ff12a678a9f18d10f877e29461585f5cd2b59 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java @@ -24,7 +24,7 @@ public class IdentifierTitle implements Serializable { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false, columnDefinition = "TEXT") @@ -45,6 +45,13 @@ public class IdentifierTitle implements Serializable { }) private Identifier identifier; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java index 5e79df9629353095d8b1a8e14c99bc004fdd8434..24ac7adb1fe1fabd49491a320b29256f8178a0de 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java @@ -22,7 +22,7 @@ public class RelatedIdentifier { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false) @@ -43,6 +43,13 @@ public class RelatedIdentifier { }) private Identifier identifier; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java index e827133e63749b0894ef4ba35e1ed4f3a58bc497..8a5f2d76a3d4b73f89d7223af8df88c7ac7efdb9 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java @@ -26,7 +26,7 @@ public class BannerMessage { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false, columnDefinition = "ENUM('ERROR','WARNING','INFO')") @@ -48,4 +48,11 @@ public class BannerMessage { @Column(columnDefinition = "TIMESTAMP") private Instant displayEnd; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java index de257e0579ed2861b31060ca1c0f0ec53b3e44de..664b284c3d087250fee1623a624f77305e19c1eb 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java @@ -30,7 +30,7 @@ public class Ontology { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(updatable = false, columnDefinition = "VARCHAR(36)") + @Column(columnDefinition = "VARCHAR(36)") private UUID id; @Column(nullable = false, unique = true) @@ -58,4 +58,11 @@ public class Ontology { @Column(columnDefinition = "TIMESTAMP") private Instant lastModified; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java index 156fc3b4c8efbd44e4d8389b50a7cb0f65814aac..44d36e5e03c1e38a3fd9ecd807abce21116eb768 100644 --- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java +++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java @@ -27,7 +27,7 @@ public class User { @Id @JdbcTypeCode(java.sql.Types.VARCHAR) - @Column(name = "ID", nullable = false, columnDefinition = "VARCHAR(36)") + @Column(name = "ID", columnDefinition = "VARCHAR(36)") private UUID id; @JdbcTypeCode(java.sql.Types.VARCHAR) @@ -68,4 +68,11 @@ public class User { @Column(name = "is_internal", nullable = false, updatable = false, columnDefinition = "bool default false") private Boolean isInternal; + @PrePersist + public void prePersist() { + if (this.id == null) { + this.id = UUID.randomUUID(); + } + } + } diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java index 95c9abeafb2cc369860eb64d4c9d1c39dbb2d427..ebe69cd7d73efece9c5dc1cf692480cfa0a5a8ac 100644 --- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java +++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java @@ -318,7 +318,7 @@ public interface MetadataMapper { Identifier identifierDtoToIdentifier(IdentifierDto data); @Mappings({ - @Mapping(target = "databaseId", source = "database.id"), + @Mapping(target = "databaseId", source = "database.id") }) IdentifierDto identifierToIdentifierDto(Identifier data); diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java index 8853728d471e3649c5b5108a21ea5404e5ed1ea2..26eb89d0274fddf64b5fe1654650ac1a6c221ccc 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MetadataEndpointUnitTest.java @@ -19,6 +19,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import java.util.List; import java.util.Optional; +import java.util.UUID; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; @@ -163,7 +164,7 @@ public class MetadataEndpointUnitTest extends AbstractUnitTest { public void getRecord_datacite_succeeds() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_datacite"); - parameters.setIdentifier("oai:1"); + parameters.setIdentifier("oai:" + IDENTIFIER_1_ID); /* mock */ when(identifierRepository.findById(IDENTIFIER_1_ID)) @@ -183,7 +184,7 @@ public class MetadataEndpointUnitTest extends AbstractUnitTest { public void getRecord_invalidIdentifierPrefix_succeeds() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_datacite"); - parameters.setIdentifier("ark:1"); + parameters.setIdentifier("ark:" + IDENTIFIER_1_ID); /* mock */ when(identifierRepository.findById(IDENTIFIER_1_ID)) @@ -201,7 +202,7 @@ public class MetadataEndpointUnitTest extends AbstractUnitTest { public void getRecord_notFound_fails() { final OaiRecordParameters parameters = new OaiRecordParameters(); parameters.setMetadataPrefix("oai_dc"); - parameters.setIdentifier("oai:9999"); + parameters.setIdentifier("oai:" + UUID.randomUUID()); /* mock */ when(identifierRepository.findById(IDENTIFIER_1_ID)) diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4fdb83bcd73535f5c0aae86cccdd29ab7b6361d5 --- /dev/null +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/entities/EntitiesUnitTest.java @@ -0,0 +1,20 @@ +package at.tuwien.entities; + +import at.tuwien.test.AbstractUnitTest; +import lombok.extern.log4j.Log4j2; +import org.junit.jupiter.api.Test; + +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@Log4j2 +public class EntitiesUnitTest extends AbstractUnitTest { + + @Test + public void uuidVersion_succeeds() { + + /* test */ + assertEquals(4, UUID.randomUUID().version()); + } +} diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java index d86626a8efdacee3017ddcc51f7a92dfc3afe31f..e47229bd0ae17c3b56a46ed60002e5f2226ae204 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/AuthenticationPrivilegedIntegrationMvcTest.java @@ -1,6 +1,7 @@ package at.tuwien.mvc; import at.tuwien.api.keycloak.TokenDto; +import at.tuwien.entities.database.View; import at.tuwien.exception.AuthServiceConnectionException; import at.tuwien.exception.AuthServiceException; import at.tuwien.exception.CredentialsInvalidException; @@ -12,6 +13,7 @@ import at.tuwien.repository.UserRepository; import at.tuwien.test.AbstractUnitTest; import at.tuwien.utils.KeycloakUtils; import dasniko.testcontainers.keycloak.KeycloakContainer; +import jakarta.transaction.Transactional; import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -96,10 +98,11 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest keycloakUtils.createUser(USER_1_ID, USER_1_KEYCLOAK_SIGNUP_REQUEST); /* test */ - this.mockMvc.perform(get("/api/database/1").with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID).with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) .andDo(print()) .andExpect(header().doesNotExist("X-Username")) .andExpect(header().doesNotExist("X-Password")) + .andExpect(header().doesNotExist("X-Jdbc-Method")) .andExpect(header().doesNotExist("Access-Control-Expose-Headers")) .andExpect(status().isOk()); } @@ -111,7 +114,7 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest keycloakUtils.createUser(USER_LOCAL_ADMIN_ID, USER_LOCAL_KEYCLOAK_SIGNUP_REQUEST); /* test */ - this.mockMvc.perform(get("/api/database/1").with(httpBasic(USER_LOCAL_ADMIN_USERNAME, USER_LOCAL_ADMIN_PASSWORD))) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID).with(httpBasic(USER_LOCAL_ADMIN_USERNAME, USER_LOCAL_ADMIN_PASSWORD))) .andDo(print()) .andExpect(header().string("X-Username", CONTAINER_1_PRIVILEGED_USERNAME)) .andExpect(header().string("X-Password", CONTAINER_1_PRIVILEGED_PASSWORD)) @@ -128,7 +131,7 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest final TokenDto jwt = keycloakGateway.obtainUserToken(USER_LOCAL_ADMIN_USERNAME, USER_LOCAL_ADMIN_PASSWORD); /* test */ - this.mockMvc.perform(get("/api/database/1").header("Authorization", "Bearer " + jwt.getAccessToken())) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID).header("Authorization", "Bearer " + jwt.getAccessToken())) .andDo(print()) .andExpect(header().string("X-Username", CONTAINER_1_PRIVILEGED_USERNAME)) .andExpect(header().string("X-Password", CONTAINER_1_PRIVILEGED_PASSWORD)) @@ -146,7 +149,7 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest /* test */ - this.mockMvc.perform(get("/api/database/1/table/1").header("Authorization", "Bearer " + jwt.getAccessToken())) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID + "/table/" + TABLE_1_ID).header("Authorization", "Bearer " + jwt.getAccessToken())) .andDo(print()) .andExpect(header().string("X-Username", CONTAINER_1_PRIVILEGED_USERNAME)) .andExpect(header().string("X-Password", CONTAINER_1_PRIVILEGED_PASSWORD)) @@ -162,10 +165,11 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest keycloakUtils.createUser(USER_1_ID, USER_1_KEYCLOAK_SIGNUP_REQUEST); /* test */ - this.mockMvc.perform(get("/api/database/1/table/1").with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID + "/table/" + TABLE_1_ID).with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) .andDo(print()) .andExpect(header().doesNotExist("X-Username")) .andExpect(header().doesNotExist("X-Password")) + .andExpect(header().doesNotExist("X-Jdbc-Method")) .andExpect(header().doesNotExist("Access-Control-Expose-Headers")) .andExpect(status().isOk()); } @@ -177,7 +181,7 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest keycloakUtils.createUser(USER_LOCAL_ADMIN_ID, USER_LOCAL_KEYCLOAK_SIGNUP_REQUEST); /* test */ - this.mockMvc.perform(get("/api/database/1/table/1").with(httpBasic(USER_LOCAL_ADMIN_USERNAME, USER_LOCAL_ADMIN_PASSWORD))) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID + "/table/" + TABLE_1_ID).with(httpBasic(USER_LOCAL_ADMIN_USERNAME, USER_LOCAL_ADMIN_PASSWORD))) .andDo(print()) .andExpect(header().string("X-Username", CONTAINER_1_PRIVILEGED_USERNAME)) .andExpect(header().string("X-Password", CONTAINER_1_PRIVILEGED_PASSWORD)) @@ -187,16 +191,18 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest } @Test + @Transactional public void findById_view_basicUser_succeeds() throws Exception { /* mock */ keycloakUtils.createUser(USER_1_ID, USER_1_KEYCLOAK_SIGNUP_REQUEST); /* test */ - this.mockMvc.perform(get("/api/database/1/view/1").with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) + this.mockMvc.perform(get("/api/database/" + DATABASE_1_ID + "/view/" + VIEW_1_ID).with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) .andDo(print()) .andExpect(header().doesNotExist("X-Username")) .andExpect(header().doesNotExist("X-Password")) + .andExpect(header().doesNotExist("X-Jdbc-Method")) .andExpect(header().doesNotExist("Access-Control-Expose-Headers")) .andExpect(status().isOk()); } @@ -208,10 +214,11 @@ public class AuthenticationPrivilegedIntegrationMvcTest extends AbstractUnitTest keycloakUtils.createUser(USER_1_ID, USER_1_KEYCLOAK_SIGNUP_REQUEST); /* test */ - this.mockMvc.perform(get("/api/container/1").with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) + this.mockMvc.perform(get("/api/container/" + CONTAINER_1_ID).with(httpBasic(USER_1_USERNAME, USER_1_PASSWORD))) .andDo(print()) .andExpect(header().doesNotExist("X-Username")) .andExpect(header().doesNotExist("X-Password")) + .andExpect(header().doesNotExist("X-Jdbc-Method")) .andExpect(header().doesNotExist("Access-Control-Expose-Headers")) .andExpect(status().isOk()); } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java index adb884ee91ea98debb474e11786a233b4fdfdafe..260aebe7be411cd1ac32c63160a8964d26c0f9a3 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java @@ -111,7 +111,7 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest { /* test */ final List<Identifier> response = dataCiteIdentifierService.findAll(null, null, QUERY_1_ID, null, null); - assertEquals(1, response.size()); + assertEquals(2, response.size()); } @Test diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java index 9c91084f77cdac6c554cb11ea847bbb447185283..b1886aa835f2cc0cb2aac9e53365d869ec30724c 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServicePersistenceTest.java @@ -63,16 +63,6 @@ public class DatabaseServicePersistenceTest extends AbstractUnitTest { assertEquals(DATABASE_1, response); } - @Test - @Transactional(readOnly = true) - public void findAllPublicOrSchemaPublicByInternalName_succeeds() { - - /* test */ - final List<Database> response = databaseService.findAllPublicOrSchemaPublicByInternalName(DATABASE_3_INTERNALNAME); - assertEquals(1, response.size()); - assertEquals(DATABASE_3, response.get(0)); - } - @Test @Transactional(readOnly = true) public void findAllPublicOrSchemaPublicByInternalName_privateEmpty_succeeds() { @@ -91,16 +81,4 @@ public class DatabaseServicePersistenceTest extends AbstractUnitTest { assertEquals(0, response.size()); } - @Test - @Transactional(readOnly = true) - public void findAllAtLestReadAccess_privateAccess_succeeds() { - - /* test */ - final List<Database> response = databaseService.findAllAtLestReadAccess(USER_2_ID); - assertEquals(3, response.size()); - assertEquals(DATABASE_4, response.get(0)); - assertEquals(DATABASE_2, response.get(1)); - assertEquals(DATABASE_1, response.get(2)); - } - } diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java index 1cc874293cdd414e0a8fc252dede166fc8b2c10a..c053afa51d4de9404a69aa5eee8b81cb1e567384 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java @@ -106,7 +106,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest { /* test */ final List<Identifier> response = identifierService.findAll(null, null, QUERY_1_ID, null, null); - assertEquals(1, response.size()); + assertEquals(2, response.size()); } @Test @@ -131,17 +131,11 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest { /* test */ final List<Identifier> response = identifierService.findByDatabaseIdAndQueryId(DATABASE_1_ID, QUERY_1_ID); - assertEquals(1, response.size()); + assertEquals(2, response.size()); final Identifier identifier0 = response.get(0); - assertEquals(IDENTIFIER_2_ID, identifier0.getId()); - } - - @Test - public void findByDatabaseIdAndQueryId_fails() { - - /* test */ - final List<Identifier> response = identifierService.findByDatabaseIdAndQueryId(DATABASE_1_ID, QUERY_1_ID); - assertEquals(1, response.size()); + assertEquals(IDENTIFIER_1_ID, identifier0.getId()); + final Identifier identifier1 = response.get(1); + assertEquals(IDENTIFIER_2_ID, identifier1.getId()); } @Test diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java index e1321689e556b73d1da5b347a5887e1ee61cff80..286b7d89cc30a81f33fe1938e44bfe0832504321 100644 --- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java +++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java @@ -4,6 +4,7 @@ import at.tuwien.api.database.table.CreateTableDto; import at.tuwien.api.database.table.columns.CreateTableColumnDto; import at.tuwien.api.database.table.columns.ColumnTypeDto; import at.tuwien.api.database.table.constraints.CreateTableConstraintsDto; +import at.tuwien.entities.container.Container; import at.tuwien.entities.database.Database; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.database.table.columns.TableColumn; diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java index 1014475ef9eb044531e635049a246e218222ad6c..7bb45d568e7ed729f7e8a2b379d7055500ccedd3 100644 --- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java @@ -49,8 +49,8 @@ public class ViewServiceImpl implements ViewService { .filter(v -> v.getId().equals(viewId)) .findFirst(); if (optional.isEmpty()) { - log.error("Failed to find view with id {}", viewId); - throw new ViewNotFoundException("Failed to find view with id " + viewId); + log.error("Failed to find view with id: {}", viewId); + throw new ViewNotFoundException("Failed to find view with id: " + viewId); } return optional.get(); } diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java index 198ce2bfb9169b627a435eb424d8a8e134df8907..b5da835fa1e471d8e5a0ccda75724ec4d9c7c6c3 100644 --- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java +++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java @@ -5025,6 +5025,7 @@ public abstract class BaseTest { .owner(USER_1) .identifiers(new LinkedList<>()) /* IDENTIFIER_3 */ .columns(null) /* VIEW_1_COLUMNS */ + .database(null) /* DATABASE_1 */ .build(); public static final Long VIEW_1_DATA_COUNT = 3L; @@ -5203,6 +5204,7 @@ public abstract class BaseTest { .queryHash(VIEW_2_QUERY_HASH) .ownedBy(USER_1_ID) .owner(USER_1) + .database(null) /* DATABASE_1 */ .build(); public static final List<ViewColumn> VIEW_2_COLUMNS = List.of( @@ -5368,6 +5370,7 @@ public abstract class BaseTest { .queryHash(VIEW_3_QUERY_HASH) .ownedBy(USER_1_ID) .owner(USER_1) + .database(null) /* DATABASE_1 */ .build(); public static final ViewDto VIEW_3_PRIVILEGED_DTO = ViewDto.builder() @@ -6325,6 +6328,7 @@ public abstract class BaseTest { public static final IdentifierDto IDENTIFIER_1_DTO = IdentifierDto.builder() .id(IDENTIFIER_1_ID) .databaseId(DATABASE_1_ID) + .queryId(QUERY_1_ID) .descriptions(new LinkedList<>(List.of(IDENTIFIER_1_DESCRIPTION_1_DTO))) .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1_DTO, IDENTIFIER_1_TITLE_2_DTO))) .doi(IDENTIFIER_1_DOI) diff --git a/dbrepo-search-service/.coveragerc b/dbrepo-search-service/.coveragerc index 35271a237a7e1c5f3fe0d1d9bda277fb12611efd..a387be84259ecf1c8b1387a407e3cfc528960a30 100644 --- a/dbrepo-search-service/.coveragerc +++ b/dbrepo-search-service/.coveragerc @@ -1,5 +1,4 @@ [report] -format = text omit = # omit tests ./tests/* @@ -7,4 +6,4 @@ omit = ./omlib/* [html] -directory = htmlcov \ No newline at end of file +directory = htmlcov diff --git a/dbrepo-search-service/init/.coveragerc b/dbrepo-search-service/init/.coveragerc index 35271a237a7e1c5f3fe0d1d9bda277fb12611efd..a387be84259ecf1c8b1387a407e3cfc528960a30 100644 --- a/dbrepo-search-service/init/.coveragerc +++ b/dbrepo-search-service/init/.coveragerc @@ -1,5 +1,4 @@ [report] -format = text omit = # omit tests ./tests/* @@ -7,4 +6,4 @@ omit = ./omlib/* [html] -directory = htmlcov \ No newline at end of file +directory = htmlcov diff --git a/lib/python/.coveragerc b/lib/python/.coveragerc index fe5a089d2ee3bf7b1a47b57c17936c9df551ec53..a387be84259ecf1c8b1387a407e3cfc528960a30 100644 --- a/lib/python/.coveragerc +++ b/lib/python/.coveragerc @@ -1,5 +1,4 @@ [report] -format = html omit = # omit tests ./tests/* @@ -7,4 +6,4 @@ omit = ./omlib/* [html] -directory = htmlcov \ No newline at end of file +directory = htmlcov diff --git a/lib/python/coverage.xml b/lib/python/coverage.xml new file mode 100644 index 0000000000000000000000000000000000000000..4c3ca2d8955982cd6cfb705f5b102bf28d8d0be2 --- /dev/null +++ b/lib/python/coverage.xml @@ -0,0 +1,1798 @@ +<?xml version="1.0" ?> +<coverage version="7.6.12" timestamp="1740131337201" lines-valid="1752" lines-covered="1699" line-rate="0.9697" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0"> + <!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.6.12 --> + <!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd --> + <sources> + <source>/home/mweise/Projects/fda-services/lib/python</source> + </sources> + <packages> + <package name="dbrepo" line-rate="0.9376" branch-rate="0" complexity="0"> + <classes> + <class name="RestClient.py" filename="dbrepo/RestClient.py" complexity="0" line-rate="0.9503" branch-rate="0"> + <methods/> + <lines> + <line number="1" hits="1"/> + <line number="2" hits="1"/> + <line number="3" hits="1"/> + <line number="5" hits="1"/> + <line number="6" hits="1"/> + <line number="7" hits="1"/> + <line number="9" hits="1"/> + <line number="10" hits="1"/> + <line number="11" hits="1"/> + <line number="15" hits="1"/> + <line number="19" hits="1"/> + <line number="31" hits="1"/> + <line number="32" hits="1"/> + <line number="33" hits="1"/> + <line number="34" hits="1"/> + <line number="36" hits="1"/> + <line number="41" hits="1"/> + <line number="42" hits="1"/> + <line number="43" hits="1"/> + <line number="44" hits="1"/> + <line number="45" hits="1"/> + <line number="47" hits="1"/> + <line number="48" hits="1"/> + <line number="51" hits="1"/> + <line number="53" hits="1"/> + <line number="54" hits="1"/> + <line number="55" hits="1"/> + <line number="56" hits="1"/> + <line number="57" hits="1"/> + <line number="58" hits="1"/> + <line number="59" hits="1"/> + <line number="60" hits="1"/> + <line number="61" hits="1"/> + <line number="62" hits="1"/> + <line number="63" hits="1"/> + <line number="64" hits="1"/> + <line number="66" hits="1"/> + <line number="67" hits="1"/> + <line number="68" hits="1"/> + <line number="69" hits="1"/> + <line number="70" hits="1"/> + <line number="71" hits="1"/> + <line number="72" hits="1"/> + <line number="73" hits="1"/> + <line number="74" hits="1"/> + <line number="75" hits="1"/> + <line number="76" hits="1"/> + <line number="77" hits="1"/> + <line number="80" hits="1"/> + <line number="86" hits="1"/> + <line number="87" hits="1"/> + <line number="88" hits="1"/> + <line number="89" hits="1"/> + <line number="90" hits="1"/> + <line number="92" hits="1"/> + <line number="100" hits="1"/> + <line number="101" hits="1"/> + <line number="102" hits="1"/> + <line number="103" hits="1"/> + <line number="104" hits="1"/> + <line number="105" hits="1"/> + <line number="108" hits="1"/> + <line number="116" hits="1"/> + <line number="117" hits="1"/> + <line number="118" hits="1"/> + <line number="119" hits="1"/> + <line number="120" hits="1"/> + <line number="121" hits="1"/> + <line number="124" hits="1"/> + <line number="134" hits="1"/> + <line number="135" hits="1"/> + <line number="136" hits="1"/> + <line number="137" hits="1"/> + <line number="138" hits="1"/> + <line number="139" hits="1"/> + <line number="140" hits="1"/> + <line number="141" hits="1"/> + <line number="142" hits="1"/> + <line number="143" hits="1"/> + <line number="146" hits="1"/> + <line number="166" hits="1"/> + <line number="167" hits="1"/> + <line number="170" hits="1"/> + <line number="171" hits="1"/> + <line number="172" hits="1"/> + <line number="173" hits="1"/> + <line number="174" hits="1"/> + <line number="175" hits="1"/> + <line number="176" hits="1"/> + <line number="177" hits="1"/> + <line number="178" hits="1"/> + <line number="179" hits="1"/> + <line number="182" hits="1"/> + <line number="190" hits="1"/> + <line number="191" hits="1"/> + <line number="192" hits="1"/> + <line number="193" hits="1"/> + <line number="194" hits="1"/> + <line number="195" hits="1"/> + <line number="198" hits="1"/> + <line number="207" hits="1"/> + <line number="208" hits="1"/> + <line number="209" hits="1"/> + <line number="210" hits="1"/> + <line number="211" hits="1"/> + <line number="212" hits="1"/> + <line number="213" hits="1"/> + <line number="214" hits="1"/> + <line number="217" hits="1"/> + <line number="225" hits="1"/> + <line number="226" hits="1"/> + <line number="227" hits="1"/> + <line number="228" hits="1"/> + <line number="229" hits="1"/> + <line number="230" hits="1"/> + <line number="233" hits="1"/> + <line number="240" hits="1"/> + <line number="241" hits="1"/> + <line number="242" hits="1"/> + <line number="243" hits="1"/> + <line number="244" hits="1"/> + <line number="247" hits="1"/> + <line number="258" hits="1"/> + <line number="259" hits="1"/> + <line number="260" hits="1"/> + <line number="261" hits="1"/> + <line number="262" hits="1"/> + <line number="263" hits="1"/> + <line number="264" hits="1"/> + <line number="265" hits="1"/> + <line number="266" hits="1"/> + <line number="267" hits="1"/> + <line number="270" hits="1"/> + <line number="290" hits="1"/> + <line number="291" hits="1"/> + <line number="294" hits="1"/> + <line number="295" hits="1"/> + <line number="296" hits="1"/> + <line number="297" hits="1"/> + <line number="298" hits="1"/> + <line number="299" hits="1"/> + <line number="300" hits="1"/> + <line number="301" hits="1"/> + <line number="302" hits="1"/> + <line number="303" hits="1"/> + <line number="304" hits="1"/> + <line number="305" hits="1"/> + <line number="306" hits="1"/> + <line number="307" hits="1"/> + <line number="308" hits="1"/> + <line number="309" hits="1"/> + <line number="312" hits="1"/> + <line number="336" hits="1"/> + <line number="337" hits="1"/> + <line number="342" hits="1"/> + <line number="343" hits="1"/> + <line number="344" hits="1"/> + <line number="345" hits="1"/> + <line number="346" hits="1"/> + <line number="347" hits="1"/> + <line number="348" hits="1"/> + <line number="349" hits="1"/> + <line number="350" hits="1"/> + <line number="351" hits="1"/> + <line number="352" hits="1"/> + <line number="353" hits="1"/> + <line number="356" hits="1"/> + <line number="373" hits="1"/> + <line number="374" hits="1"/> + <line number="376" hits="1"/> + <line number="377" hits="1"/> + <line number="378" hits="1"/> + <line number="379" hits="1"/> + <line number="380" hits="1"/> + <line number="381" hits="1"/> + <line number="382" hits="1"/> + <line number="383" hits="1"/> + <line number="384" hits="1"/> + <line number="385" hits="1"/> + <line number="386" hits="1"/> + <line number="388" hits="1"/> + <line number="389" hits="1"/> + <line number="390" hits="1"/> + <line number="393" hits="1"/> + <line number="409" hits="1"/> + <line number="410" hits="1"/> + <line number="411" hits="1"/> + <line number="412" hits="1"/> + <line number="413" hits="1"/> + <line number="414" hits="1"/> + <line number="415" hits="1"/> + <line number="416" hits="1"/> + <line number="417" hits="1"/> + <line number="418" hits="1"/> + <line number="419" hits="1"/> + <line number="420" hits="1"/> + <line number="421" hits="1"/> + <line number="423" hits="1"/> + <line number="424" hits="1"/> + <line number="426" hits="1"/> + <line number="429" hits="1"/> + <line number="444" hits="1"/> + <line number="445" hits="1"/> + <line number="446" hits="1"/> + <line number="447" hits="1"/> + <line number="448" hits="1"/> + <line number="449" hits="1"/> + <line number="450" hits="1"/> + <line number="451" hits="1"/> + <line number="452" hits="1"/> + <line number="453" hits="1"/> + <line number="454" hits="1"/> + <line number="455" hits="1"/> + <line number="456" hits="1"/> + <line number="457" hits="1"/> + <line number="458" hits="1"/> + <line number="459" hits="1"/> + <line number="460" hits="1"/> + <line number="462" hits="1"/> + <line number="463" hits="1"/> + <line number="464" hits="1"/> + <line number="467" hits="1"/> + <line number="491" hits="1"/> + <line number="492" hits="1"/> + <line number="495" hits="1"/> + <line number="496" hits="1"/> + <line number="497" hits="1"/> + <line number="498" hits="1"/> + <line number="499" hits="1"/> + <line number="500" hits="1"/> + <line number="501" hits="1"/> + <line number="502" hits="1"/> + <line number="503" hits="1"/> + <line number="504" hits="1"/> + <line number="505" hits="1"/> + <line number="506" hits="1"/> + <line number="507" hits="1"/> + <line number="508" hits="1"/> + <line number="509" hits="1"/> + <line number="510" hits="1"/> + <line number="513" hits="1"/> + <line number="525" hits="1"/> + <line number="526" hits="1"/> + <line number="527" hits="1"/> + <line number="528" hits="1"/> + <line number="529" hits="1"/> + <line number="530" hits="1"/> + <line number="531" hits="1"/> + <line number="532" hits="1"/> + <line number="533" hits="1"/> + <line number="534" hits="1"/> + <line number="537" hits="1"/> + <line number="550" hits="1"/> + <line number="551" hits="1"/> + <line number="552" hits="1"/> + <line number="553" hits="1"/> + <line number="554" hits="1"/> + <line number="555" hits="1"/> + <line number="556" hits="1"/> + <line number="557" hits="1"/> + <line number="558" hits="1"/> + <line number="559" hits="1"/> + <line number="562" hits="1"/> + <line number="576" hits="1"/> + <line number="577" hits="1"/> + <line number="578" hits="1"/> + <line number="579" hits="1"/> + <line number="580" hits="1"/> + <line number="581" hits="1"/> + <line number="582" hits="1"/> + <line number="583" hits="1"/> + <line number="584" hits="1"/> + <line number="585" hits="1"/> + <line number="586" hits="1"/> + <line number="587" hits="1"/> + <line number="588" hits="1"/> + <line number="589" hits="1"/> + <line number="590" hits="1"/> + <line number="593" hits="1"/> + <line number="606" hits="1"/> + <line number="607" hits="1"/> + <line number="608" hits="1"/> + <line number="609" hits="1"/> + <line number="610" hits="1"/> + <line number="611" hits="1"/> + <line number="612" hits="1"/> + <line number="613" hits="1"/> + <line number="614" hits="1"/> + <line number="615" hits="1"/> + <line number="616" hits="1"/> + <line number="619" hits="1"/> + <line number="633" hits="1"/> + <line number="634" hits="1"/> + <line number="635" hits="1"/> + <line number="636" hits="1"/> + <line number="637" hits="1"/> + <line number="638" hits="1"/> + <line number="639" hits="1"/> + <line number="640" hits="1"/> + <line number="641" hits="1"/> + <line number="642" hits="1"/> + <line number="643" hits="1"/> + <line number="644" hits="1"/> + <line number="645" hits="1"/> + <line number="646" hits="1"/> + <line number="649" hits="1"/> + <line number="660" hits="1"/> + <line number="661" hits="1"/> + <line number="662" hits="1"/> + <line number="663" hits="1"/> + <line number="664" hits="1"/> + <line number="665" hits="1"/> + <line number="666" hits="1"/> + <line number="667" hits="1"/> + <line number="670" hits="1"/> + <line number="683" hits="1"/> + <line number="684" hits="1"/> + <line number="685" hits="1"/> + <line number="686" hits="1"/> + <line number="687" hits="1"/> + <line number="688" hits="1"/> + <line number="689" hits="1"/> + <line number="690" hits="1"/> + <line number="691" hits="1"/> + <line number="692" hits="1"/> + <line number="695" hits="1"/> + <line number="710" hits="1"/> + <line number="711" hits="1"/> + <line number="713" hits="1"/> + <line number="714" hits="1"/> + <line number="715" hits="1"/> + <line number="716" hits="1"/> + <line number="717" hits="1"/> + <line number="718" hits="1"/> + <line number="719" hits="1"/> + <line number="720" hits="1"/> + <line number="723" hits="1"/> + <line number="743" hits="1"/> + <line number="744" hits="1"/> + <line number="747" hits="1"/> + <line number="748" hits="1"/> + <line number="749" hits="1"/> + <line number="750" hits="1"/> + <line number="751" hits="1"/> + <line number="752" hits="1"/> + <line number="753" hits="1"/> + <line number="754" hits="1"/> + <line number="755" hits="1"/> + <line number="756" hits="1"/> + <line number="757" hits="1"/> + <line number="758" hits="1"/> + <line number="759" hits="1"/> + <line number="760" hits="1"/> + <line number="761" hits="1"/> + <line number="762" hits="1"/> + <line number="765" hits="1"/> + <line number="780" hits="1"/> + <line number="781" hits="1"/> + <line number="782" hits="1"/> + <line number="783" hits="1"/> + <line number="784" hits="1"/> + <line number="785" hits="1"/> + <line number="786" hits="1"/> + <line number="787" hits="1"/> + <line number="788" hits="1"/> + <line number="789" hits="1"/> + <line number="790" hits="1"/> + <line number="791" hits="1"/> + <line number="792" hits="1"/> + <line number="793" hits="1"/> + <line number="794" hits="1"/> + <line number="795" hits="1"/> + <line number="796" hits="1"/> + <line number="799" hits="1"/> + <line number="817" hits="1"/> + <line number="818" hits="1"/> + <line number="819" hits="1"/> + <line number="820" hits="1"/> + <line number="821" hits="1"/> + <line number="822" hits="1"/> + <line number="823" hits="1"/> + <line number="824" hits="1"/> + <line number="825" hits="1"/> + <line number="826" hits="1"/> + <line number="827" hits="1"/> + <line number="828" hits="1"/> + <line number="829" hits="1"/> + <line number="830" hits="1"/> + <line number="831" hits="1"/> + <line number="832" hits="1"/> + <line number="833" hits="1"/> + <line number="834" hits="1"/> + <line number="836" hits="1"/> + <line number="839" hits="1"/> + <line number="858" hits="1"/> + <line number="859" hits="1"/> + <line number="860" hits="1"/> + <line number="861" hits="1"/> + <line number="862" hits="1"/> + <line number="863" hits="1"/> + <line number="864" hits="1"/> + <line number="865" hits="1"/> + <line number="866" hits="1"/> + <line number="867" hits="1"/> + <line number="868" hits="1"/> + <line number="869" hits="1"/> + <line number="870" hits="1"/> + <line number="871" hits="1"/> + <line number="872" hits="1"/> + <line number="873" hits="1"/> + <line number="874" hits="1"/> + <line number="875" hits="1"/> + <line number="877" hits="1"/> + <line number="880" hits="1"/> + <line number="894" hits="1"/> + <line number="895" hits="1"/> + <line number="896" hits="1"/> + <line number="897" hits="1"/> + <line number="898" hits="1"/> + <line number="899" hits="1"/> + <line number="900" hits="1"/> + <line number="901" hits="1"/> + <line number="902" hits="1"/> + <line number="903" hits="1"/> + <line number="904" hits="1"/> + <line number="905" hits="1"/> + <line number="907" hits="1"/> + <line number="910" hits="1"/> + <line number="926" hits="0"/> + <line number="927" hits="0"/> + <line number="928" hits="0"/> + <line number="929" hits="0"/> + <line number="932" hits="0"/> + <line number="933" hits="0"/> + <line number="934" hits="0"/> + <line number="935" hits="0"/> + <line number="936" hits="0"/> + <line number="937" hits="0"/> + <line number="938" hits="0"/> + <line number="939" hits="0"/> + <line number="940" hits="0"/> + <line number="941" hits="0"/> + <line number="943" hits="0"/> + <line number="946" hits="1"/> + <line number="960" hits="0"/> + <line number="961" hits="0"/> + <line number="962" hits="0"/> + <line number="968" hits="0"/> + <line number="969" hits="0"/> + <line number="970" hits="0"/> + <line number="971" hits="0"/> + <line number="972" hits="0"/> + <line number="973" hits="0"/> + <line number="974" hits="0"/> + <line number="975" hits="0"/> + <line number="976" hits="0"/> + <line number="977" hits="0"/> + <line number="980" hits="1"/> + <line number="992" hits="0"/> + <line number="993" hits="0"/> + <line number="994" hits="0"/> + <line number="998" hits="0"/> + <line number="999" hits="0"/> + <line number="1000" hits="0"/> + <line number="1001" hits="0"/> + <line number="1002" hits="0"/> + <line number="1003" hits="0"/> + <line number="1004" hits="0"/> + <line number="1005" hits="0"/> + <line number="1006" hits="0"/> + <line number="1007" hits="0"/> + <line number="1010" hits="1"/> + <line number="1025" hits="1"/> + <line number="1026" hits="1"/> + <line number="1027" hits="1"/> + <line number="1028" hits="1"/> + <line number="1029" hits="1"/> + <line number="1030" hits="1"/> + <line number="1031" hits="1"/> + <line number="1032" hits="1"/> + <line number="1033" hits="1"/> + <line number="1034" hits="1"/> + <line number="1035" hits="1"/> + <line number="1037" hits="1"/> + <line number="1038" hits="1"/> + <line number="1039" hits="1"/> + <line number="1042" hits="1"/> + <line number="1057" hits="1"/> + <line number="1058" hits="1"/> + <line number="1059" hits="1"/> + <line number="1060" hits="1"/> + <line number="1061" hits="1"/> + <line number="1062" hits="1"/> + <line number="1063" hits="1"/> + <line number="1064" hits="1"/> + <line number="1065" hits="1"/> + <line number="1066" hits="1"/> + <line number="1067" hits="1"/> + <line number="1068" hits="1"/> + <line number="1070" hits="1"/> + <line number="1073" hits="1"/> + <line number="1087" hits="1"/> + <line number="1088" hits="1"/> + <line number="1089" hits="1"/> + <line number="1090" hits="1"/> + <line number="1091" hits="1"/> + <line number="1092" hits="1"/> + <line number="1093" hits="1"/> + <line number="1094" hits="1"/> + <line number="1095" hits="1"/> + <line number="1096" hits="1"/> + <line number="1097" hits="1"/> + <line number="1098" hits="1"/> + <line number="1100" hits="1"/> + <line number="1103" hits="1"/> + <line number="1120" hits="1"/> + <line number="1121" hits="1"/> + <line number="1122" hits="1"/> + <line number="1123" hits="1"/> + <line number="1124" hits="1"/> + <line number="1125" hits="1"/> + <line number="1126" hits="1"/> + <line number="1127" hits="1"/> + <line number="1128" hits="1"/> + <line number="1129" hits="1"/> + <line number="1130" hits="1"/> + <line number="1131" hits="1"/> + <line number="1132" hits="1"/> + <line number="1133" hits="1"/> + <line number="1134" hits="1"/> + <line number="1135" hits="1"/> + <line number="1136" hits="1"/> + <line number="1138" hits="1"/> + <line number="1141" hits="1"/> + <line number="1157" hits="1"/> + <line number="1158" hits="1"/> + <line number="1159" hits="1"/> + <line number="1160" hits="1"/> + <line number="1161" hits="1"/> + <line number="1162" hits="1"/> + <line number="1163" hits="1"/> + <line number="1164" hits="1"/> + <line number="1165" hits="1"/> + <line number="1166" hits="1"/> + <line number="1167" hits="1"/> + <line number="1168" hits="1"/> + <line number="1169" hits="1"/> + <line number="1170" hits="1"/> + <line number="1172" hits="1"/> + <line number="1175" hits="1"/> + <line number="1187" hits="1"/> + <line number="1188" hits="1"/> + <line number="1189" hits="1"/> + <line number="1190" hits="1"/> + <line number="1191" hits="1"/> + <line number="1192" hits="1"/> + <line number="1193" hits="1"/> + <line number="1194" hits="1"/> + <line number="1195" hits="1"/> + <line number="1196" hits="1"/> + <line number="1199" hits="1"/> + <line number="1216" hits="1"/> + <line number="1217" hits="1"/> + <line number="1218" hits="1"/> + <line number="1219" hits="1"/> + <line number="1220" hits="1"/> + <line number="1221" hits="1"/> + <line number="1222" hits="1"/> + <line number="1223" hits="1"/> + <line number="1224" hits="1"/> + <line number="1225" hits="1"/> + <line number="1226" hits="1"/> + <line number="1227" hits="1"/> + <line number="1228" hits="1"/> + <line number="1230" hits="1"/> + <line number="1231" hits="1"/> + <line number="1232" hits="1"/> + <line number="1235" hits="1"/> + <line number="1252" hits="1"/> + <line number="1253" hits="1"/> + <line number="1254" hits="1"/> + <line number="1255" hits="1"/> + <line number="1256" hits="1"/> + <line number="1257" hits="1"/> + <line number="1258" hits="1"/> + <line number="1259" hits="1"/> + <line number="1260" hits="1"/> + <line number="1261" hits="1"/> + <line number="1262" hits="1"/> + <line number="1263" hits="1"/> + <line number="1264" hits="1"/> + <line number="1266" hits="1"/> + <line number="1267" hits="1"/> + <line number="1268" hits="1"/> + <line number="1271" hits="1"/> + <line number="1285" hits="1"/> + <line number="1286" hits="1"/> + <line number="1287" hits="1"/> + <line number="1288" hits="1"/> + <line number="1289" hits="1"/> + <line number="1290" hits="1"/> + <line number="1291" hits="1"/> + <line number="1292" hits="1"/> + <line number="1293" hits="1"/> + <line number="1294" hits="1"/> + <line number="1295" hits="1"/> + <line number="1296" hits="1"/> + <line number="1298" hits="1"/> + <line number="1299" hits="1"/> + <line number="1300" hits="1"/> + <line number="1303" hits="1"/> + <line number="1326" hits="1"/> + <line number="1327" hits="1"/> + <line number="1328" hits="1"/> + <line number="1329" hits="1"/> + <line number="1330" hits="1"/> + <line number="1331" hits="1"/> + <line number="1332" hits="1"/> + <line number="1333" hits="1"/> + <line number="1335" hits="1"/> + <line number="1336" hits="1"/> + <line number="1337" hits="1"/> + <line number="1338" hits="1"/> + <line number="1339" hits="1"/> + <line number="1340" hits="1"/> + <line number="1341" hits="1"/> + <line number="1342" hits="1"/> + <line number="1343" hits="1"/> + <line number="1344" hits="1"/> + <line number="1345" hits="1"/> + <line number="1346" hits="1"/> + <line number="1347" hits="1"/> + <line number="1348" hits="1"/> + <line number="1349" hits="1"/> + <line number="1350" hits="1"/> + <line number="1353" hits="1"/> + <line number="1371" hits="1"/> + <line number="1372" hits="1"/> + <line number="1373" hits="1"/> + <line number="1374" hits="1"/> + <line number="1375" hits="1"/> + <line number="1376" hits="1"/> + <line number="1377" hits="1"/> + <line number="1378" hits="1"/> + <line number="1379" hits="1"/> + <line number="1380" hits="1"/> + <line number="1381" hits="1"/> + <line number="1382" hits="1"/> + <line number="1383" hits="1"/> + <line number="1384" hits="1"/> + <line number="1385" hits="1"/> + <line number="1386" hits="1"/> + <line number="1389" hits="1"/> + <line number="1404" hits="1"/> + <line number="1405" hits="1"/> + <line number="1406" hits="1"/> + <line number="1407" hits="1"/> + <line number="1408" hits="1"/> + <line number="1409" hits="1"/> + <line number="1410" hits="1"/> + <line number="1411" hits="1"/> + <line number="1412" hits="1"/> + <line number="1413" hits="1"/> + <line number="1414" hits="1"/> + <line number="1415" hits="1"/> + <line number="1416" hits="1"/> + <line number="1419" hits="1"/> + <line number="1434" hits="1"/> + <line number="1435" hits="1"/> + <line number="1436" hits="1"/> + <line number="1437" hits="1"/> + <line number="1438" hits="1"/> + <line number="1439" hits="1"/> + <line number="1440" hits="1"/> + <line number="1441" hits="1"/> + <line number="1442" hits="1"/> + <line number="1443" hits="1"/> + <line number="1444" hits="1"/> + <line number="1445" hits="1"/> + <line number="1446" hits="1"/> + <line number="1447" hits="1"/> + <line number="1450" hits="1"/> + <line number="1463" hits="1"/> + <line number="1464" hits="1"/> + <line number="1465" hits="1"/> + <line number="1466" hits="1"/> + <line number="1467" hits="1"/> + <line number="1468" hits="1"/> + <line number="1469" hits="1"/> + <line number="1470" hits="1"/> + <line number="1471" hits="1"/> + <line number="1472" hits="1"/> + <line number="1473" hits="1"/> + <line number="1474" hits="1"/> + <line number="1477" hits="1"/> + <line number="1495" hits="1"/> + <line number="1496" hits="1"/> + <line number="1497" hits="1"/> + <line number="1498" hits="1"/> + <line number="1499" hits="1"/> + <line number="1500" hits="1"/> + <line number="1501" hits="1"/> + <line number="1502" hits="1"/> + <line number="1503" hits="1"/> + <line number="1504" hits="1"/> + <line number="1505" hits="1"/> + <line number="1506" hits="1"/> + <line number="1507" hits="1"/> + <line number="1508" hits="1"/> + <line number="1509" hits="1"/> + <line number="1510" hits="1"/> + <line number="1513" hits="1"/> + <line number="1549" hits="1"/> + <line number="1550" hits="1"/> + <line number="1555" hits="1"/> + <line number="1556" hits="1"/> + <line number="1557" hits="1"/> + <line number="1558" hits="1"/> + <line number="1559" hits="1"/> + <line number="1560" hits="1"/> + <line number="1561" hits="1"/> + <line number="1562" hits="1"/> + <line number="1563" hits="1"/> + <line number="1564" hits="1"/> + <line number="1565" hits="1"/> + <line number="1566" hits="1"/> + <line number="1568" hits="1"/> + <line number="1569" hits="1"/> + <line number="1570" hits="1"/> + <line number="1573" hits="1"/> + <line number="1610" hits="1"/> + <line number="1611" hits="1"/> + <line number="1617" hits="1"/> + <line number="1618" hits="1"/> + <line number="1619" hits="1"/> + <line number="1620" hits="1"/> + <line number="1621" hits="1"/> + <line number="1622" hits="1"/> + <line number="1623" hits="1"/> + <line number="1624" hits="1"/> + <line number="1625" hits="1"/> + <line number="1626" hits="1"/> + <line number="1627" hits="1"/> + <line number="1628" hits="1"/> + <line number="1630" hits="1"/> + <line number="1631" hits="1"/> + <line number="1632" hits="1"/> + <line number="1635" hits="1"/> + <line number="1650" hits="1"/> + <line number="1651" hits="1"/> + <line number="1652" hits="1"/> + <line number="1653" hits="1"/> + <line number="1654" hits="1"/> + <line number="1655" hits="1"/> + <line number="1656" hits="1"/> + <line number="1657" hits="1"/> + <line number="1658" hits="1"/> + <line number="1659" hits="1"/> + <line number="1660" hits="1"/> + <line number="1661" hits="1"/> + <line number="1662" hits="1"/> + <line number="1664" hits="1"/> + <line number="1665" hits="1"/> + <line number="1666" hits="1"/> + <line number="1669" hits="1"/> + <line number="1675" hits="1"/> + <line number="1676" hits="1"/> + <line number="1677" hits="1"/> + <line number="1678" hits="1"/> + <line number="1679" hits="1"/> + <line number="1680" hits="1"/> + <line number="1683" hits="1"/> + <line number="1689" hits="1"/> + <line number="1690" hits="1"/> + <line number="1691" hits="1"/> + <line number="1692" hits="1"/> + <line number="1693" hits="1"/> + <line number="1694" hits="1"/> + <line number="1697" hits="1"/> + <line number="1716" hits="1"/> + <line number="1717" hits="1"/> + <line number="1718" hits="1"/> + <line number="1719" hits="1"/> + <line number="1720" hits="1"/> + <line number="1721" hits="1"/> + <line number="1722" hits="1"/> + <line number="1723" hits="1"/> + <line number="1724" hits="1"/> + <line number="1725" hits="1"/> + <line number="1726" hits="1"/> + <line number="1727" hits="1"/> + <line number="1728" hits="1"/> + <line number="1729" hits="1"/> + <line number="1730" hits="1"/> + <line number="1731" hits="1"/> + <line number="1732" hits="1"/> + <line number="1733" hits="1"/> + <line number="1734" hits="1"/> + <line number="1735" hits="1"/> + <line number="1736" hits="1"/> + <line number="1737" hits="1"/> + <line number="1738" hits="1"/> + <line number="1739" hits="1"/> + <line number="1740" hits="1"/> + <line number="1741" hits="1"/> + <line number="1742" hits="1"/> + <line number="1743" hits="1"/> + <line number="1745" hits="1"/> + <line number="1748" hits="1"/> + <line number="1768" hits="1"/> + <line number="1769" hits="1"/> + <line number="1771" hits="1"/> + <line number="1772" hits="1"/> + <line number="1773" hits="1"/> + <line number="1774" hits="1"/> + <line number="1775" hits="1"/> + <line number="1776" hits="1"/> + <line number="1777" hits="1"/> + <line number="1778" hits="1"/> + <line number="1779" hits="1"/> + <line number="1780" hits="1"/> + <line number="1781" hits="1"/> + <line number="1782" hits="1"/> + <line number="1783" hits="1"/> + <line number="1784" hits="1"/> + </lines> + </class> + <class name="UploadClient.py" filename="dbrepo/UploadClient.py" complexity="0" line-rate="0.52" branch-rate="0"> + <methods/> + <lines> + <line number="1" hits="1"/> + <line number="2" hits="1"/> + <line number="3" hits="1"/> + <line number="4" hits="1"/> + <line number="5" hits="1"/> + <line number="7" hits="1"/> + <line number="8" hits="1"/> + <line number="10" hits="1"/> + <line number="12" hits="1"/> + <line number="16" hits="1"/> + <line number="24" hits="1"/> + <line number="26" hits="1"/> + <line number="27" hits="0"/> + <line number="29" hits="1"/> + <line number="30" hits="0"/> + <line number="31" hits="0"/> + <line number="32" hits="0"/> + <line number="33" hits="0"/> + <line number="34" hits="0"/> + <line number="35" hits="0"/> + <line number="36" hits="0"/> + <line number="37" hits="0"/> + <line number="38" hits="0"/> + <line number="39" hits="0"/> + <line number="40" hits="0"/> + </lines> + </class> + <class name="__init__.py" filename="dbrepo/__init__.py" complexity="0" line-rate="1" branch-rate="0"> + <methods/> + <lines/> + </class> + </classes> + </package> + <package name="dbrepo.api" line-rate="1" branch-rate="0" complexity="0"> + <classes> + <class name="__init__.py" filename="dbrepo/api/__init__.py" complexity="0" line-rate="1" branch-rate="0"> + <methods/> + <lines/> + </class> + <class name="dto.py" filename="dbrepo/api/dto.py" complexity="0" line-rate="1" branch-rate="0"> + <methods/> + <lines> + <line number="1" hits="1"/> + <line number="3" hits="1"/> + <line number="4" hits="1"/> + <line number="5" hits="1"/> + <line number="6" hits="1"/> + <line number="8" hits="1"/> + <line number="10" hits="1"/> + <line number="15" hits="1"/> + <line number="16" hits="1"/> + <line number="17" hits="1"/> + <line number="18" hits="1"/> + <line number="19" hits="1"/> + <line number="20" hits="1"/> + <line number="21" hits="1"/> + <line number="22" hits="1"/> + <line number="23" hits="1"/> + <line number="24" hits="1"/> + <line number="27" hits="1"/> + <line number="28" hits="1"/> + <line number="29" hits="1"/> + <line number="30" hits="1"/> + <line number="33" hits="1"/> + <line number="34" hits="1"/> + <line number="35" hits="1"/> + <line number="36" hits="1"/> + <line number="37" hits="1"/> + <line number="40" hits="1"/> + <line number="41" hits="1"/> + <line number="42" hits="1"/> + <line number="45" hits="1"/> + <line number="46" hits="1"/> + <line number="47" hits="1"/> + <line number="48" hits="1"/> + <line number="49" hits="1"/> + <line number="50" hits="1"/> + <line number="51" hits="1"/> + <line number="52" hits="1"/> + <line number="53" hits="1"/> + <line number="56" hits="1"/> + <line number="57" hits="1"/> + <line number="58" hits="1"/> + <line number="59" hits="1"/> + <line number="62" hits="1"/> + <line number="63" hits="1"/> + <line number="64" hits="1"/> + <line number="65" hits="1"/> + <line number="66" hits="1"/> + <line number="67" hits="1"/> + <line number="68" hits="1"/> + <line number="71" hits="1"/> + <line number="72" hits="1"/> + <line number="73" hits="1"/> + <line number="74" hits="1"/> + <line number="75" hits="1"/> + <line number="76" hits="1"/> + <line number="77" hits="1"/> + <line number="78" hits="1"/> + <line number="81" hits="1"/> + <line number="82" hits="1"/> + <line number="83" hits="1"/> + <line number="84" hits="1"/> + <line number="85" hits="1"/> + <line number="86" hits="1"/> + <line number="87" hits="1"/> + <line number="88" hits="1"/> + <line number="89" hits="1"/> + <line number="92" hits="1"/> + <line number="93" hits="1"/> + <line number="94" hits="1"/> + <line number="95" hits="1"/> + <line number="96" hits="1"/> + <line number="97" hits="1"/> + <line number="98" hits="1"/> + <line number="101" hits="1"/> + <line number="102" hits="1"/> + <line number="103" hits="1"/> + <line number="104" hits="1"/> + <line number="105" hits="1"/> + <line number="106" hits="1"/> + <line number="107" hits="1"/> + <line number="108" hits="1"/> + <line number="111" hits="1"/> + <line number="112" hits="1"/> + <line number="113" hits="1"/> + <line number="114" hits="1"/> + <line number="115" hits="1"/> + <line number="116" hits="1"/> + <line number="117" hits="1"/> + <line number="118" hits="1"/> + <line number="119" hits="1"/> + <line number="120" hits="1"/> + <line number="123" hits="1"/> + <line number="124" hits="1"/> + <line number="125" hits="1"/> + <line number="126" hits="1"/> + <line number="127" hits="1"/> + <line number="130" hits="1"/> + <line number="131" hits="1"/> + <line number="132" hits="1"/> + <line number="133" hits="1"/> + <line number="134" hits="1"/> + <line number="135" hits="1"/> + <line number="136" hits="1"/> + <line number="137" hits="1"/> + <line number="140" hits="1"/> + <line number="141" hits="1"/> + <line number="144" hits="1"/> + <line number="145" hits="1"/> + <line number="148" hits="1"/> + <line number="152" hits="1"/> + <line number="153" hits="1"/> + <line number="155" hits="1"/> + <line number="156" hits="1"/> + <line number="158" hits="1"/> + <line number="159" hits="1"/> + <line number="162" hits="1"/> + <line number="166" hits="1"/> + <line number="167" hits="1"/> + <line number="168" hits="1"/> + <line number="169" hits="1"/> + <line number="170" hits="1"/> + <line number="171" hits="1"/> + <line number="172" hits="1"/> + <line number="173" hits="1"/> + <line number="174" hits="1"/> + <line number="175" hits="1"/> + <line number="176" hits="1"/> + <line number="177" hits="1"/> + <line number="178" hits="1"/> + <line number="179" hits="1"/> + <line number="180" hits="1"/> + <line number="181" hits="1"/> + <line number="182" hits="1"/> + <line number="183" hits="1"/> + <line number="184" hits="1"/> + <line number="185" hits="1"/> + <line number="186" hits="1"/> + <line number="187" hits="1"/> + <line number="188" hits="1"/> + <line number="189" hits="1"/> + <line number="190" hits="1"/> + <line number="191" hits="1"/> + <line number="192" hits="1"/> + <line number="193" hits="1"/> + <line number="194" hits="1"/> + <line number="195" hits="1"/> + <line number="198" hits="1"/> + <line number="202" hits="1"/> + <line number="203" hits="1"/> + <line number="204" hits="1"/> + <line number="205" hits="1"/> + <line number="206" hits="1"/> + <line number="207" hits="1"/> + <line number="208" hits="1"/> + <line number="209" hits="1"/> + <line number="210" hits="1"/> + <line number="211" hits="1"/> + <line number="212" hits="1"/> + <line number="213" hits="1"/> + <line number="214" hits="1"/> + <line number="215" hits="1"/> + <line number="216" hits="1"/> + <line number="217" hits="1"/> + <line number="218" hits="1"/> + <line number="219" hits="1"/> + <line number="220" hits="1"/> + <line number="221" hits="1"/> + <line number="222" hits="1"/> + <line number="223" hits="1"/> + <line number="224" hits="1"/> + <line number="225" hits="1"/> + <line number="226" hits="1"/> + <line number="227" hits="1"/> + <line number="228" hits="1"/> + <line number="229" hits="1"/> + <line number="230" hits="1"/> + <line number="231" hits="1"/> + <line number="232" hits="1"/> + <line number="233" hits="1"/> + <line number="234" hits="1"/> + <line number="235" hits="1"/> + <line number="236" hits="1"/> + <line number="237" hits="1"/> + <line number="238" hits="1"/> + <line number="239" hits="1"/> + <line number="240" hits="1"/> + <line number="241" hits="1"/> + <line number="242" hits="1"/> + <line number="243" hits="1"/> + <line number="244" hits="1"/> + <line number="245" hits="1"/> + <line number="246" hits="1"/> + <line number="247" hits="1"/> + <line number="248" hits="1"/> + <line number="249" hits="1"/> + <line number="250" hits="1"/> + <line number="251" hits="1"/> + <line number="252" hits="1"/> + <line number="253" hits="1"/> + <line number="254" hits="1"/> + <line number="255" hits="1"/> + <line number="256" hits="1"/> + <line number="257" hits="1"/> + <line number="258" hits="1"/> + <line number="259" hits="1"/> + <line number="260" hits="1"/> + <line number="261" hits="1"/> + <line number="262" hits="1"/> + <line number="263" hits="1"/> + <line number="264" hits="1"/> + <line number="265" hits="1"/> + <line number="266" hits="1"/> + <line number="267" hits="1"/> + <line number="268" hits="1"/> + <line number="269" hits="1"/> + <line number="270" hits="1"/> + <line number="271" hits="1"/> + <line number="272" hits="1"/> + <line number="273" hits="1"/> + <line number="274" hits="1"/> + <line number="275" hits="1"/> + <line number="276" hits="1"/> + <line number="277" hits="1"/> + <line number="278" hits="1"/> + <line number="279" hits="1"/> + <line number="280" hits="1"/> + <line number="281" hits="1"/> + <line number="282" hits="1"/> + <line number="283" hits="1"/> + <line number="284" hits="1"/> + <line number="285" hits="1"/> + <line number="286" hits="1"/> + <line number="287" hits="1"/> + <line number="288" hits="1"/> + <line number="289" hits="1"/> + <line number="290" hits="1"/> + <line number="291" hits="1"/> + <line number="292" hits="1"/> + <line number="293" hits="1"/> + <line number="294" hits="1"/> + <line number="295" hits="1"/> + <line number="296" hits="1"/> + <line number="297" hits="1"/> + <line number="298" hits="1"/> + <line number="299" hits="1"/> + <line number="300" hits="1"/> + <line number="301" hits="1"/> + <line number="302" hits="1"/> + <line number="303" hits="1"/> + <line number="304" hits="1"/> + <line number="305" hits="1"/> + <line number="306" hits="1"/> + <line number="307" hits="1"/> + <line number="308" hits="1"/> + <line number="309" hits="1"/> + <line number="310" hits="1"/> + <line number="311" hits="1"/> + <line number="312" hits="1"/> + <line number="313" hits="1"/> + <line number="314" hits="1"/> + <line number="315" hits="1"/> + <line number="316" hits="1"/> + <line number="317" hits="1"/> + <line number="318" hits="1"/> + <line number="319" hits="1"/> + <line number="320" hits="1"/> + <line number="321" hits="1"/> + <line number="322" hits="1"/> + <line number="323" hits="1"/> + <line number="324" hits="1"/> + <line number="325" hits="1"/> + <line number="326" hits="1"/> + <line number="327" hits="1"/> + <line number="328" hits="1"/> + <line number="329" hits="1"/> + <line number="330" hits="1"/> + <line number="331" hits="1"/> + <line number="332" hits="1"/> + <line number="333" hits="1"/> + <line number="334" hits="1"/> + <line number="335" hits="1"/> + <line number="336" hits="1"/> + <line number="337" hits="1"/> + <line number="338" hits="1"/> + <line number="339" hits="1"/> + <line number="340" hits="1"/> + <line number="341" hits="1"/> + <line number="342" hits="1"/> + <line number="343" hits="1"/> + <line number="344" hits="1"/> + <line number="345" hits="1"/> + <line number="346" hits="1"/> + <line number="347" hits="1"/> + <line number="348" hits="1"/> + <line number="349" hits="1"/> + <line number="350" hits="1"/> + <line number="351" hits="1"/> + <line number="352" hits="1"/> + <line number="353" hits="1"/> + <line number="354" hits="1"/> + <line number="355" hits="1"/> + <line number="356" hits="1"/> + <line number="357" hits="1"/> + <line number="358" hits="1"/> + <line number="359" hits="1"/> + <line number="360" hits="1"/> + <line number="361" hits="1"/> + <line number="362" hits="1"/> + <line number="363" hits="1"/> + <line number="364" hits="1"/> + <line number="365" hits="1"/> + <line number="366" hits="1"/> + <line number="367" hits="1"/> + <line number="368" hits="1"/> + <line number="369" hits="1"/> + <line number="370" hits="1"/> + <line number="371" hits="1"/> + <line number="372" hits="1"/> + <line number="373" hits="1"/> + <line number="374" hits="1"/> + <line number="375" hits="1"/> + <line number="376" hits="1"/> + <line number="377" hits="1"/> + <line number="378" hits="1"/> + <line number="379" hits="1"/> + <line number="380" hits="1"/> + <line number="381" hits="1"/> + <line number="382" hits="1"/> + <line number="383" hits="1"/> + <line number="384" hits="1"/> + <line number="385" hits="1"/> + <line number="388" hits="1"/> + <line number="389" hits="1"/> + <line number="390" hits="1"/> + <line number="393" hits="1"/> + <line number="394" hits="1"/> + <line number="397" hits="1"/> + <line number="398" hits="1"/> + <line number="401" hits="1"/> + <line number="405" hits="1"/> + <line number="406" hits="1"/> + <line number="407" hits="1"/> + <line number="408" hits="1"/> + <line number="411" hits="1"/> + <line number="412" hits="1"/> + <line number="413" hits="1"/> + <line number="414" hits="1"/> + <line number="417" hits="1"/> + <line number="418" hits="1"/> + <line number="421" hits="1"/> + <line number="422" hits="1"/> + <line number="423" hits="1"/> + <line number="424" hits="1"/> + <line number="425" hits="1"/> + <line number="428" hits="1"/> + <line number="429" hits="1"/> + <line number="430" hits="1"/> + <line number="431" hits="1"/> + <line number="434" hits="1"/> + <line number="435" hits="1"/> + <line number="438" hits="1"/> + <line number="439" hits="1"/> + <line number="440" hits="1"/> + <line number="441" hits="1"/> + <line number="442" hits="1"/> + <line number="443" hits="1"/> + <line number="444" hits="1"/> + <line number="445" hits="1"/> + <line number="448" hits="1"/> + <line number="449" hits="1"/> + <line number="450" hits="1"/> + <line number="451" hits="1"/> + <line number="452" hits="1"/> + <line number="453" hits="1"/> + <line number="454" hits="1"/> + <line number="457" hits="1"/> + <line number="458" hits="1"/> + <line number="461" hits="1"/> + <line number="462" hits="1"/> + <line number="463" hits="1"/> + <line number="464" hits="1"/> + <line number="467" hits="1"/> + <line number="468" hits="1"/> + <line number="471" hits="1"/> + <line number="472" hits="1"/> + <line number="473" hits="1"/> + <line number="476" hits="1"/> + <line number="477" hits="1"/> + <line number="480" hits="1"/> + <line number="481" hits="1"/> + <line number="482" hits="1"/> + <line number="483" hits="1"/> + <line number="484" hits="1"/> + <line number="485" hits="1"/> + <line number="488" hits="1"/> + <line number="489" hits="1"/> + <line number="490" hits="1"/> + <line number="493" hits="1"/> + <line number="494" hits="1"/> + <line number="495" hits="1"/> + <line number="498" hits="1"/> + <line number="499" hits="1"/> + <line number="502" hits="1"/> + <line number="503" hits="1"/> + <line number="504" hits="1"/> + <line number="505" hits="1"/> + <line number="506" hits="1"/> + <line number="507" hits="1"/> + <line number="508" hits="1"/> + <line number="511" hits="1"/> + <line number="512" hits="1"/> + <line number="513" hits="1"/> + <line number="514" hits="1"/> + <line number="515" hits="1"/> + <line number="516" hits="1"/> + <line number="517" hits="1"/> + <line number="518" hits="1"/> + <line number="519" hits="1"/> + <line number="520" hits="1"/> + <line number="521" hits="1"/> + <line number="522" hits="1"/> + <line number="525" hits="1"/> + <line number="526" hits="1"/> + <line number="527" hits="1"/> + <line number="528" hits="1"/> + <line number="529" hits="1"/> + <line number="532" hits="1"/> + <line number="536" hits="1"/> + <line number="537" hits="1"/> + <line number="538" hits="1"/> + <line number="539" hits="1"/> + <line number="542" hits="1"/> + <line number="546" hits="1"/> + <line number="547" hits="1"/> + <line number="548" hits="1"/> + <line number="551" hits="1"/> + <line number="552" hits="1"/> + <line number="553" hits="1"/> + <line number="554" hits="1"/> + <line number="555" hits="1"/> + <line number="556" hits="1"/> + <line number="557" hits="1"/> + <line number="558" hits="1"/> + <line number="559" hits="1"/> + <line number="560" hits="1"/> + <line number="561" hits="1"/> + <line number="562" hits="1"/> + <line number="563" hits="1"/> + <line number="566" hits="1"/> + <line number="567" hits="1"/> + <line number="568" hits="1"/> + <line number="569" hits="1"/> + <line number="570" hits="1"/> + <line number="571" hits="1"/> + <line number="572" hits="1"/> + <line number="573" hits="1"/> + <line number="574" hits="1"/> + <line number="577" hits="1"/> + <line number="578" hits="1"/> + <line number="579" hits="1"/> + <line number="580" hits="1"/> + <line number="581" hits="1"/> + <line number="582" hits="1"/> + <line number="583" hits="1"/> + <line number="584" hits="1"/> + <line number="585" hits="1"/> + <line number="586" hits="1"/> + <line number="587" hits="1"/> + <line number="588" hits="1"/> + <line number="591" hits="1"/> + <line number="592" hits="1"/> + <line number="595" hits="1"/> + <line number="596" hits="1"/> + <line number="597" hits="1"/> + <line number="598" hits="1"/> + <line number="599" hits="1"/> + <line number="602" hits="1"/> + <line number="603" hits="1"/> + <line number="604" hits="1"/> + <line number="605" hits="1"/> + <line number="608" hits="1"/> + <line number="609" hits="1"/> + <line number="612" hits="1"/> + <line number="613" hits="1"/> + <line number="614" hits="1"/> + <line number="615" hits="1"/> + <line number="616" hits="1"/> + <line number="617" hits="1"/> + <line number="618" hits="1"/> + <line number="619" hits="1"/> + <line number="620" hits="1"/> + <line number="621" hits="1"/> + <line number="622" hits="1"/> + <line number="623" hits="1"/> + <line number="624" hits="1"/> + <line number="625" hits="1"/> + <line number="626" hits="1"/> + <line number="627" hits="1"/> + <line number="628" hits="1"/> + <line number="629" hits="1"/> + <line number="630" hits="1"/> + <line number="631" hits="1"/> + <line number="632" hits="1"/> + <line number="633" hits="1"/> + <line number="634" hits="1"/> + <line number="637" hits="1"/> + <line number="638" hits="1"/> + <line number="641" hits="1"/> + <line number="642" hits="1"/> + <line number="643" hits="1"/> + <line number="644" hits="1"/> + <line number="645" hits="1"/> + <line number="646" hits="1"/> + <line number="647" hits="1"/> + <line number="648" hits="1"/> + <line number="649" hits="1"/> + <line number="650" hits="1"/> + <line number="651" hits="1"/> + <line number="652" hits="1"/> + <line number="653" hits="1"/> + <line number="654" hits="1"/> + <line number="655" hits="1"/> + <line number="656" hits="1"/> + <line number="657" hits="1"/> + <line number="658" hits="1"/> + <line number="659" hits="1"/> + <line number="660" hits="1"/> + <line number="661" hits="1"/> + <line number="662" hits="1"/> + <line number="663" hits="1"/> + <line number="664" hits="1"/> + <line number="665" hits="1"/> + <line number="666" hits="1"/> + <line number="669" hits="1"/> + <line number="670" hits="1"/> + <line number="671" hits="1"/> + <line number="672" hits="1"/> + <line number="673" hits="1"/> + <line number="674" hits="1"/> + <line number="675" hits="1"/> + <line number="676" hits="1"/> + <line number="677" hits="1"/> + <line number="678" hits="1"/> + <line number="679" hits="1"/> + <line number="680" hits="1"/> + <line number="681" hits="1"/> + <line number="684" hits="1"/> + <line number="685" hits="1"/> + <line number="686" hits="1"/> + <line number="687" hits="1"/> + <line number="688" hits="1"/> + <line number="689" hits="1"/> + <line number="690" hits="1"/> + <line number="691" hits="1"/> + <line number="692" hits="1"/> + <line number="693" hits="1"/> + <line number="694" hits="1"/> + <line number="695" hits="1"/> + <line number="696" hits="1"/> + <line number="699" hits="1"/> + <line number="700" hits="1"/> + <line number="701" hits="1"/> + <line number="702" hits="1"/> + <line number="703" hits="1"/> + <line number="706" hits="1"/> + <line number="707" hits="1"/> + <line number="708" hits="1"/> + <line number="709" hits="1"/> + <line number="712" hits="1"/> + <line number="713" hits="1"/> + <line number="714" hits="1"/> + <line number="715" hits="1"/> + <line number="716" hits="1"/> + <line number="717" hits="1"/> + <line number="718" hits="1"/> + <line number="719" hits="1"/> + <line number="720" hits="1"/> + <line number="721" hits="1"/> + <line number="722" hits="1"/> + <line number="725" hits="1"/> + <line number="726" hits="1"/> + <line number="727" hits="1"/> + <line number="728" hits="1"/> + <line number="729" hits="1"/> + <line number="732" hits="1"/> + <line number="733" hits="1"/> + <line number="734" hits="1"/> + <line number="735" hits="1"/> + <line number="738" hits="1"/> + <line number="739" hits="1"/> + <line number="742" hits="1"/> + <line number="743" hits="1"/> + <line number="744" hits="1"/> + <line number="745" hits="1"/> + <line number="746" hits="1"/> + <line number="747" hits="1"/> + <line number="750" hits="1"/> + <line number="751" hits="1"/> + <line number="752" hits="1"/> + <line number="753" hits="1"/> + <line number="756" hits="1"/> + <line number="757" hits="1"/> + <line number="760" hits="1"/> + <line number="761" hits="1"/> + <line number="762" hits="1"/> + <line number="763" hits="1"/> + <line number="764" hits="1"/> + <line number="767" hits="1"/> + <line number="768" hits="1"/> + <line number="771" hits="1"/> + <line number="775" hits="1"/> + <line number="776" hits="1"/> + <line number="777" hits="1"/> + <line number="778" hits="1"/> + <line number="781" hits="1"/> + <line number="785" hits="1"/> + <line number="786" hits="1"/> + <line number="789" hits="1"/> + <line number="793" hits="1"/> + <line number="794" hits="1"/> + <line number="795" hits="1"/> + <line number="796" hits="1"/> + <line number="797" hits="1"/> + <line number="798" hits="1"/> + <line number="799" hits="1"/> + <line number="800" hits="1"/> + <line number="801" hits="1"/> + <line number="802" hits="1"/> + <line number="803" hits="1"/> + <line number="804" hits="1"/> + <line number="805" hits="1"/> + <line number="806" hits="1"/> + <line number="807" hits="1"/> + <line number="808" hits="1"/> + <line number="809" hits="1"/> + <line number="810" hits="1"/> + <line number="813" hits="1"/> + <line number="817" hits="1"/> + <line number="818" hits="1"/> + <line number="819" hits="1"/> + <line number="820" hits="1"/> + <line number="821" hits="1"/> + <line number="822" hits="1"/> + <line number="823" hits="1"/> + <line number="824" hits="1"/> + <line number="825" hits="1"/> + <line number="826" hits="1"/> + <line number="827" hits="1"/> + <line number="828" hits="1"/> + <line number="829" hits="1"/> + <line number="830" hits="1"/> + <line number="831" hits="1"/> + <line number="832" hits="1"/> + <line number="833" hits="1"/> + <line number="834" hits="1"/> + <line number="835" hits="1"/> + <line number="836" hits="1"/> + <line number="837" hits="1"/> + <line number="838" hits="1"/> + <line number="839" hits="1"/> + <line number="840" hits="1"/> + <line number="841" hits="1"/> + <line number="842" hits="1"/> + <line number="843" hits="1"/> + <line number="844" hits="1"/> + <line number="845" hits="1"/> + <line number="846" hits="1"/> + <line number="847" hits="1"/> + <line number="848" hits="1"/> + <line number="849" hits="1"/> + <line number="850" hits="1"/> + <line number="853" hits="1"/> + <line number="857" hits="1"/> + <line number="858" hits="1"/> + <line number="859" hits="1"/> + <line number="860" hits="1"/> + <line number="861" hits="1"/> + <line number="862" hits="1"/> + <line number="865" hits="1"/> + <line number="869" hits="1"/> + <line number="870" hits="1"/> + <line number="872" hits="1"/> + <line number="873" hits="1"/> + <line number="876" hits="1"/> + <line number="880" hits="1"/> + <line number="881" hits="1"/> + <line number="883" hits="1"/> + <line number="884" hits="1"/> + <line number="886" hits="1"/> + <line number="887" hits="1"/> + <line number="889" hits="1"/> + <line number="890" hits="1"/> + <line number="893" hits="1"/> + <line number="897" hits="1"/> + <line number="898" hits="1"/> + <line number="900" hits="1"/> + <line number="901" hits="1"/> + <line number="904" hits="1"/> + <line number="908" hits="1"/> + <line number="909" hits="1"/> + <line number="911" hits="1"/> + <line number="912" hits="1"/> + <line number="914" hits="1"/> + <line number="915" hits="1"/> + <line number="917" hits="1"/> + <line number="918" hits="1"/> + <line number="921" hits="1"/> + <line number="922" hits="1"/> + <line number="923" hits="1"/> + <line number="924" hits="1"/> + <line number="925" hits="1"/> + <line number="926" hits="1"/> + <line number="927" hits="1"/> + <line number="928" hits="1"/> + <line number="929" hits="1"/> + <line number="930" hits="1"/> + <line number="931" hits="1"/> + <line number="932" hits="1"/> + <line number="933" hits="1"/> + <line number="936" hits="1"/> + <line number="937" hits="1"/> + <line number="940" hits="1"/> + <line number="941" hits="1"/> + <line number="942" hits="1"/> + <line number="943" hits="1"/> + <line number="944" hits="1"/> + <line number="945" hits="1"/> + <line number="946" hits="1"/> + <line number="947" hits="1"/> + <line number="948" hits="1"/> + <line number="949" hits="1"/> + <line number="950" hits="1"/> + <line number="951" hits="1"/> + <line number="952" hits="1"/> + <line number="953" hits="1"/> + <line number="954" hits="1"/> + <line number="955" hits="1"/> + <line number="958" hits="1"/> + <line number="959" hits="1"/> + <line number="960" hits="1"/> + <line number="961" hits="1"/> + <line number="962" hits="1"/> + <line number="963" hits="1"/> + <line number="964" hits="1"/> + <line number="965" hits="1"/> + <line number="966" hits="1"/> + <line number="967" hits="1"/> + <line number="968" hits="1"/> + <line number="969" hits="1"/> + <line number="970" hits="1"/> + <line number="971" hits="1"/> + <line number="972" hits="1"/> + <line number="973" hits="1"/> + <line number="974" hits="1"/> + <line number="975" hits="1"/> + <line number="976" hits="1"/> + <line number="977" hits="1"/> + <line number="978" hits="1"/> + <line number="979" hits="1"/> + <line number="980" hits="1"/> + <line number="981" hits="1"/> + <line number="982" hits="1"/> + <line number="983" hits="1"/> + <line number="984" hits="1"/> + <line number="987" hits="1"/> + <line number="988" hits="1"/> + <line number="989" hits="1"/> + <line number="990" hits="1"/> + <line number="991" hits="1"/> + <line number="992" hits="1"/> + <line number="993" hits="1"/> + <line number="994" hits="1"/> + <line number="995" hits="1"/> + <line number="996" hits="1"/> + <line number="997" hits="1"/> + <line number="998" hits="1"/> + <line number="999" hits="1"/> + <line number="1000" hits="1"/> + <line number="1001" hits="1"/> + <line number="1002" hits="1"/> + <line number="1003" hits="1"/> + <line number="1006" hits="1"/> + <line number="1007" hits="1"/> + <line number="1008" hits="1"/> + <line number="1009" hits="1"/> + <line number="1010" hits="1"/> + <line number="1011" hits="1"/> + <line number="1012" hits="1"/> + <line number="1013" hits="1"/> + <line number="1014" hits="1"/> + <line number="1015" hits="1"/> + <line number="1016" hits="1"/> + <line number="1017" hits="1"/> + <line number="1018" hits="1"/> + <line number="1019" hits="1"/> + <line number="1020" hits="1"/> + <line number="1021" hits="1"/> + <line number="1022" hits="1"/> + <line number="1023" hits="1"/> + <line number="1024" hits="1"/> + <line number="1025" hits="1"/> + <line number="1028" hits="1"/> + <line number="1029" hits="1"/> + <line number="1030" hits="1"/> + <line number="1031" hits="1"/> + <line number="1032" hits="1"/> + <line number="1033" hits="1"/> + <line number="1034" hits="1"/> + <line number="1035" hits="1"/> + <line number="1036" hits="1"/> + <line number="1037" hits="1"/> + <line number="1038" hits="1"/> + <line number="1041" hits="1"/> + <line number="1042" hits="1"/> + <line number="1043" hits="1"/> + <line number="1044" hits="1"/> + <line number="1045" hits="1"/> + <line number="1046" hits="1"/> + <line number="1047" hits="1"/> + <line number="1048" hits="1"/> + <line number="1049" hits="1"/> + <line number="1050" hits="1"/> + <line number="1051" hits="1"/> + <line number="1052" hits="1"/> + <line number="1053" hits="1"/> + <line number="1054" hits="1"/> + <line number="1055" hits="1"/> + <line number="1056" hits="1"/> + <line number="1057" hits="1"/> + <line number="1058" hits="1"/> + <line number="1061" hits="1"/> + <line number="1062" hits="1"/> + <line number="1063" hits="1"/> + <line number="1064" hits="1"/> + <line number="1067" hits="1"/> + <line number="1068" hits="1"/> + <line number="1069" hits="1"/> + <line number="1070" hits="1"/> + <line number="1071" hits="1"/> + <line number="1074" hits="1"/> + <line number="1078" hits="1"/> + <line number="1079" hits="1"/> + <line number="1080" hits="1"/> + <line number="1081" hits="1"/> + <line number="1082" hits="1"/> + <line number="1085" hits="1"/> + <line number="1086" hits="1"/> + <line number="1089" hits="1"/> + <line number="1090" hits="1"/> + <line number="1091" hits="1"/> + <line number="1092" hits="1"/> + <line number="1093" hits="1"/> + <line number="1094" hits="1"/> + <line number="1095" hits="1"/> + <line number="1096" hits="1"/> + <line number="1099" hits="1"/> + <line number="1100" hits="1"/> + <line number="1101" hits="1"/> + <line number="1102" hits="1"/> + <line number="1103" hits="1"/> + <line number="1104" hits="1"/> + <line number="1107" hits="1"/> + <line number="1108" hits="1"/> + <line number="1109" hits="1"/> + <line number="1110" hits="1"/> + <line number="1113" hits="1"/> + <line number="1114" hits="1"/> + <line number="1115" hits="1"/> + <line number="1116" hits="1"/> + <line number="1117" hits="1"/> + </lines> + </class> + <class name="exceptions.py" filename="dbrepo/api/exceptions.py" complexity="0" line-rate="1" branch-rate="0"> + <methods/> + <lines> + <line number="1" hits="1"/> + <line number="5" hits="1"/> + <line number="8" hits="1"/> + <line number="12" hits="1"/> + <line number="15" hits="1"/> + <line number="19" hits="1"/> + <line number="22" hits="1"/> + <line number="26" hits="1"/> + <line number="29" hits="1"/> + <line number="33" hits="1"/> + <line number="36" hits="1"/> + <line number="40" hits="1"/> + <line number="43" hits="1"/> + <line number="47" hits="1"/> + <line number="50" hits="1"/> + <line number="54" hits="1"/> + <line number="57" hits="1"/> + <line number="61" hits="1"/> + <line number="64" hits="1"/> + <line number="68" hits="1"/> + <line number="71" hits="1"/> + <line number="75" hits="1"/> + <line number="78" hits="1"/> + <line number="82" hits="1"/> + <line number="85" hits="1"/> + <line number="89" hits="1"/> + <line number="92" hits="1"/> + <line number="96" hits="1"/> + <line number="99" hits="1"/> + <line number="103" hits="1"/> + <line number="106" hits="1"/> + <line number="110" hits="1"/> + </lines> + </class> + </classes> + </package> + </packages> +</coverage>