Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "julia"
directory: "/"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
20 changes: 0 additions & 20 deletions .github/workflows/jlpkgbutler-butler-workflow.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/workflows/jlpkgbutler-ci-master-workflow.yml

This file was deleted.

38 changes: 0 additions & 38 deletions .github/workflows/jlpkgbutler-ci-pr-workflow.yml

This file was deleted.

21 changes: 0 additions & 21 deletions .github/workflows/jlpkgbutler-codeformat-pr-workflow.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/jlpkgbutler-compathelper-workflow.yml

This file was deleted.

13 changes: 0 additions & 13 deletions .github/workflows/jlpkgbutler-tagbot-workflow.yml

This file was deleted.

17 changes: 17 additions & 0 deletions .github/workflows/juliaci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Julia CI

on:
push: {branches: [main,master]}
pull_request: {types: [opened,synchronize,reopened,ready_for_review,converted_to_draft]}
issue_comment: {types: [created]}
workflow_dispatch: {inputs: {feature: {type: choice, description: What to run, options: [DocDeploy,LintAndTest,TagBot]}}}

jobs:
julia-ci:
uses: julia-testitems/testitem-workflow/.github/workflows/juliaci.yml@v2
with:
include-all-compatible-minor-versions: true
include-rc-versions: true
permissions: write-all
secrets:
codecov_token: ${{ secrets.CODECOV_TOKEN }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@
*.jl.*.cov
*.jl.mem
.vscode
docs/build/
docs/Manifest.toml
test-output*.*
Manifest.toml
1 change: 0 additions & 1 deletion .jlpkgbutler.toml

This file was deleted.

2 changes: 1 addition & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The QueryableBackend.jl package is licensed under the MIT "Expat" License:

> Copyright (c) 2018-2019: David Anthoff.
> Copyright (c) 2018-2026: David Anthoff.
>
>
> Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
5 changes: 3 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "QueryableBackend"
uuid = "0898d9ac-042b-5d31-8dcc-959fb3365f19"
version = "0.1.1-DEV"
version = "1.0.0-DEV"

[deps]
QueryOperators = "2aef5ad7-51ca-5a8f-8e88-e75cf067b44b"
Expand All @@ -14,8 +14,9 @@ IteratorInterfaceExtensions = "1"
TableTraits = "1"

[extras]
TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Query = "1a8c2f83-1ff3-5112-b086-8aa67b057ba1"

[targets]
test = ["Test", "Query"]
test = ["Test", "Query", "TestItemRunner"]
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# QueryableBackend

[![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip)
[![Build Status](https://travis-ci.org/queryverse/QueryableBackend.jl.svg?branch=master)](https://travis-ci.org/queryverse/QueryableBackend.jl)
[![Build status](https://ci.appveyor.com/api/projects/status/mu4vb1aiwrubcc9e/branch/master?svg=true)](https://ci.appveyor.com/project/queryverse/queryablebackend-jl/branch/master)
[![Build Status](https://github.com/queryverse/QueryableBackend.jl/actions/workflows/juliaci.yml/badge.svg?branch=main)](https://github.com/queryverse/QueryableBackend.jl/actions/workflows/juliaci.yml)
[![codecov.io](http://codecov.io/github/queryverse/QueryableBackend.jl/coverage.svg?branch=master)](http://codecov.io/github/queryverse/QueryableBackend.jl?branch=master)

# Overview
Expand Down
83 changes: 3 additions & 80 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,82 +1,5 @@
using QueryableBackend
import QueryOperators
import IteratorInterfaceExtensions
using Query
using Test
using TestItemRunner

struct ExampleSource
end
include("test_queryablebackend.jl")

function QueryOperators.query(x::ExampleSource)
return QueryableBackend.QueryableSource() do querytree
return [(a = 1, b = 1), (a = 2, b = 2)]
end
end

@testset "QueryableBackend" begin

source = ExampleSource()

@testset "filter + map builds correct tree" begin
q = source |> @filter(_.a > 3) |> @map(_.a)

@test q isa QueryableBackend.QueryableMap
@test q.source isa QueryableBackend.QueryableFilter
@test QueryableBackend.get_source(q) isa QueryableBackend.QueryableSource
end

@testset "tree traversal" begin
q = source |> @filter(_.a > 3) |> @map(_.a)

nodes = QueryableBackend.walk_tree(q)
@test length(nodes) == 3
@test nodes[1] isa QueryableBackend.QueryableSource
@test nodes[2] isa QueryableBackend.QueryableFilter
@test nodes[3] isa QueryableBackend.QueryableMap
end

@testset "getiterator still works" begin
r = source |> @filter(_.a > 3) |> @map(_.a) |>
IteratorInterfaceExtensions.getiterator |> collect

@test r == [(a = 1, b = 1), (a = 2, b = 2)]
end

@testset "orderby + take builds correct tree" begin
q = source |> @orderby(_.a) |> @take(5)

@test q isa QueryableBackend.QueryableTake
@test q.n == 5
@test q.source isa QueryableBackend.QueryableOrderBy
@test q.source.descending == false
end

@testset "orderby_descending" begin
q = source |> @orderby_descending(_.a)

@test q isa QueryableBackend.QueryableOrderBy
@test q.descending == true
end

@testset "drop" begin
q = source |> @drop(3)

@test q isa QueryableBackend.QueryableDrop
@test q.n == 3
end

@testset "unique" begin
q = source |> @unique(_.a)

@test q isa QueryableBackend.QueryableUnique
end

@testset "thenby" begin
q = source |> @orderby(_.a) |> @thenby(_.b)

@test q isa QueryableBackend.QueryableThenBy
@test q.descending == false
@test q.source isa QueryableBackend.QueryableOrderBy
end

end
@run_package_tests
78 changes: 78 additions & 0 deletions test/test_queryablebackend.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
@testsnippet ExampleBackend begin
import QueryOperators
import IteratorInterfaceExtensions
using Query

struct ExampleSource
end

function QueryOperators.query(x::ExampleSource)

Check notice on line 9 in test/test_queryablebackend.jl

View workflow job for this annotation

GitHub Actions / julia-ci / lint

unused_function_argument

An argument is included in a function signature but not used within its body.
return QueryableBackend.QueryableSource() do querytree

Check notice on line 10 in test/test_queryablebackend.jl

View workflow job for this annotation

GitHub Actions / julia-ci / lint

unused_binding

Variable has been assigned but not used.
return [(a = 1, b = 1), (a = 2, b = 2)]
end
end

source = ExampleSource()
end

@testitem "filter + map builds correct tree" setup=[ExampleBackend] begin
q = source |> @filter(_.a > 3) |> @map(_.a)

@test q isa QueryableBackend.QueryableMap
@test q.source isa QueryableBackend.QueryableFilter
@test QueryableBackend.get_source(q) isa QueryableBackend.QueryableSource
end

@testitem "tree traversal" setup=[ExampleBackend] begin
q = source |> @filter(_.a > 3) |> @map(_.a)

nodes = QueryableBackend.walk_tree(q)
@test length(nodes) == 3
@test nodes[1] isa QueryableBackend.QueryableSource
@test nodes[2] isa QueryableBackend.QueryableFilter
@test nodes[3] isa QueryableBackend.QueryableMap
end

@testitem "getiterator still works" setup=[ExampleBackend] begin
r = source |> @filter(_.a > 3) |> @map(_.a) |>
IteratorInterfaceExtensions.getiterator |> collect

@test r == [(a = 1, b = 1), (a = 2, b = 2)]
end

@testitem "orderby + take builds correct tree" setup=[ExampleBackend] begin
q = source |> @orderby(_.a) |> @take(5)

@test q isa QueryableBackend.QueryableTake
@test q.n == 5
@test q.source isa QueryableBackend.QueryableOrderBy
@test q.source.descending == false
end

@testitem "orderby_descending" setup=[ExampleBackend] begin
q = source |> @orderby_descending(_.a)

@test q isa QueryableBackend.QueryableOrderBy
@test q.descending == true
end

@testitem "drop" setup=[ExampleBackend] begin
q = source |> @drop(3)

@test q isa QueryableBackend.QueryableDrop
@test q.n == 3
end

@testitem "unique" setup=[ExampleBackend] begin
q = source |> @unique(_.a)

@test q isa QueryableBackend.QueryableUnique
end

@testitem "thenby" setup=[ExampleBackend] begin
q = source |> @orderby(_.a) |> @thenby(_.b)

@test q isa QueryableBackend.QueryableThenBy
@test q.descending == false
@test q.source isa QueryableBackend.QueryableOrderBy
end
Loading