Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed require statements #525

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
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
5 changes: 5 additions & 0 deletions .busted
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
return {
default = {
verbose = true,
},
}
8 changes: 8 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,11 @@ jobs:
else
echo "Rockspec unchanged, nothing to do"
fi

unit_tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run Busted
uses: lunarmodules/[email protected]
11 changes: 8 additions & 3 deletions init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,13 @@

--]]

local requirePrefix= tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix=requirePrefix.."."
end

return {
layout = require("lain.layout"),
util = require("lain.util"),
widget = require("lain.widget")
layout = require(requirePrefix .. "layout"),
util = require(requirePrefix .. "util"),
widget = require(requirePrefix .. "widget")
}
9 changes: 7 additions & 2 deletions layout/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,14 @@

--]]

local wrequire = require("lain.helpers").wrequire
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local wrequire = require(requirePrefix .. "helpers").wrequire
local setmetatable = setmetatable

local layout = { _NAME = "lain.layout" }
local layout = { _NAME = requirePrefix .. "layout" }

return setmetatable(layout, { __index = wrequire })
4 changes: 4 additions & 0 deletions spec/data/lines_from.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
line1
line2
line3
line4
138 changes: 138 additions & 0 deletions spec/helpers_spec.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
describe("Test helpers functions", function()
package.loaded["awful"] = {}
package.loaded["awful.spawn"] = {
easy_async=function (cmd,f)
f(cmd,0,0,1)
end,
easy_async_with_shell=function (cmd,f)
f(cmd,0,0,1)
end,
with_line_callback=function (cmd,f)
f.stdout(cmd)
end

}
local timer ={
start= function () end,
connect_signal= function () end,
emit_signal= function () end,
}
local timerMock=mock(timer,true)
package.loaded["gears.timer"] =function() return timerMock end


it("file_exists", function()
local helpers = require("helpers")
assert.is_true(helpers.file_exists("init.lua"))
assert.is_false(helpers.file_exists("init2.lua"))
end)
it("lines_from", function()
local result = {
"line1",
"line2",
"line3",
"line4",
}
local helpers = require("helpers")
assert.are.same(helpers.lines_from("spec/data/lines_from.txt"),result)
end)
it("lines_match", function()
local result = {
"line1",
"line3",
}
local helpers = require("helpers")
assert.are.same(helpers.lines_match("line[1,3]","spec/data/lines_from.txt"),result)
end)
it("first_line", function()
local helpers = require("helpers")
assert.are.same(helpers.first_line("spec/data/lines_from.txt"),"line1")
assert.are.equals(helpers.first_line("spec/data/no_file.txt"),nil)
end)
it("first_nonempty_line", function()
local helpers = require("helpers")
assert.are.same(helpers.first_nonempty_line("spec/data/lines_from.txt"),"line1")
end)


it("newtimer", function()
local helpers = require("helpers")

assert.is_false(helpers.newtimer("name",10,"fun",false,false))
assert.stub(timer.start).was.called_with(timerMock)
assert.stub(timer.connect_signal).was.called_with(timerMock,"timeout", "fun")
assert.stub(timer.emit_signal).was.called_with(timerMock,"timeout")
assert.are.equals(helpers.newtimer("name",10,"fun",true,true),timerMock)
end)

it("async", function()
local helpers = require("helpers")
helpers.async("date",function (out,code)
assert.is.truthy(#out)
assert.is.truthy(code)
end)
end)
it("async_with_shell", function()
local helpers = require("helpers")
helpers.async_with_shell("date",function (out,code)
assert.is.truthy(#out)
assert.is.truthy(code)
end)
end)
it("line_callback", function()
local helpers = require("helpers")
helpers.line_callback("date",function (out)
assert.is.truthy(#out)
end)
end)

it("map_table", function()
local helpers = require("helpers")
helpers.set_map("key","value")
assert.are.equals(helpers.get_map("key"),"value")
end)

it("element_in_table", function()
local helpers = require("helpers")
local table={
a=1,
b=2,
c=3,
}
assert.is_true(helpers.element_in_table(1,table))
assert.is_false(helpers.element_in_table(5,table))
end)

it("spairs", function()
local helpers = require("helpers")
local table={
a=1,
c=3,
b=2,
}
local f=helpers.spairs(table)
key,value=f()
assert.are.equals(key,"a")
assert.are.equals(value,1)
key,value=f()
assert.are.equals(key,"b")
assert.are.equals(value,2)
key,value=f()
assert.are.equals(key,"c")
assert.are.equals(value,3)
end)

it("trivial_partition_set", function()
local helpers = require("helpers")
local table={"a","b","c"}
local result={{"a"}, {"b"}, {"c"}}
assert.are.same(helpers.trivial_partition_set(table),result)
end)

it("powerset", function()
local helpers = require("helpers")
local table={"a","b","c"}
local result={{},{"a"}, {"b"},{"b","a"}, {"c"},{"c","a"},{"c","b"},{"c","b","a"}}
assert.are.same(helpers.powerset(table),result)
end)
end)
17 changes: 17 additions & 0 deletions spec/init_spec.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
describe("Test the requires", function()
package.loaded["awful"] = {}
package.loaded["awful.spawn"] = {}
package.loaded["gears.timer"] = {}
it("init", function()
require("init")
end)
it("layout", function()
require("layout")
end)
it("util", function()
require("util")
end)
it("widget", function()
require("widget")
end)
end)
9 changes: 7 additions & 2 deletions util/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,22 @@

--]]

local requirePrefix= tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix=requirePrefix.."."
end

local awful = require("awful")
local sqrt = math.sqrt
local pairs = pairs
local client = client
local tonumber = tonumber
local wrequire = require("lain.helpers").wrequire
local wrequire = require(requirePrefix .. "helpers").wrequire
local setmetatable = setmetatable

-- Lain utilities submodule
-- lain.util
local util = { _NAME = "lain.util" }
local util = { _NAME = requirePrefix .. "util" }

-- Like awful.menu.clients, but only show clients of currently selected tags
function util.menu_clients_current_tags(menu, args)
Expand Down
7 changes: 6 additions & 1 deletion util/menu_iterator.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,13 @@
-- Menu iterator with Naughty notifications
-- lain.util.menu_iterator

local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local naughty = require("naughty")
local helpers = require("lain.helpers")
local helpers = require(requirePrefix .. "helpers")
local atable = require("awful.util").table
local assert = assert
local pairs = pairs
Expand Down
7 changes: 6 additions & 1 deletion widget/alsa.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@

--]]

local helpers = require("lain.helpers")
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local shell = require("awful.util").shell
local wibox = require("wibox")
local string = string
Expand Down
7 changes: 6 additions & 1 deletion widget/alsabar.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@

--]]

local helpers = require("lain.helpers")
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local awful = require("awful")
local naughty = require("naughty")
local wibox = require("wibox")
Expand Down
13 changes: 9 additions & 4 deletions widget/bat.lua
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
--[[

Licensed under GNU General Public License v2
* (c) 2013, Luca CPZ
* (c) 2010-2012, Peter Hofmann
Licensed under GNU General Public License v2
* (c) 2013, Luca CPZ
* (c) 2010-2012, Peter Hofmann

--]]

local helpers = require("lain.helpers")
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local fs = require("gears.filesystem")
local naughty = require("naughty")
local wibox = require("wibox")
Expand Down
9 changes: 7 additions & 2 deletions widget/cal.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@

--]]

local helpers = require("lain.helpers")
local markup = require("lain.util.markup")
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local markup = require(requirePrefix .. "util.markup")
local awful = require("awful")
local naughty = require("naughty")
local floor = math.floor
Expand Down
9 changes: 7 additions & 2 deletions widget/contrib/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,14 @@

--]]

local wrequire = require("lain.helpers").wrequire
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local wrequire = require(requirePrefix .. "helpers").wrequire
local setmetatable = setmetatable

local widget = { _NAME = "lain.widget.contrib" }
local widget = { _NAME = requirePrefix .. "widget.contrib" }

return setmetatable(widget, { __index = wrequire })
7 changes: 6 additions & 1 deletion widget/contrib/moc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,12 @@

--]]

local helpers = require("lain.helpers")
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local shell = require("awful.util").shell
local focused = require("awful.screen").focused
local escape_f = require("awful.util").escape
Expand Down
7 changes: 6 additions & 1 deletion widget/contrib/redshift.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@

--]]

local async = require("lain.helpers").async
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local async = require(requirePrefix .. ".helpers").async
local awful = require("awful")
local execute = os.execute
local type = type
Expand Down
9 changes: 7 additions & 2 deletions widget/contrib/task.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@

--]]

local helpers = require("lain.helpers")
local markup = require("lain.util").markup
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local markup = require(requirePrefix .. "util").markup
local awful = require("awful")
local naughty = require("naughty")
local mouse = mouse
Expand Down
7 changes: 6 additions & 1 deletion widget/contrib/tp_smapi.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@

--]]

local helpers = require("lain.helpers")
local requirePrefix = tostring(...):match(".*lain") or ""
if requirePrefix then
requirePrefix = requirePrefix .. "."
end

local helpers = require(requirePrefix .. "helpers")
local focused = require("awful.screen").focused
local naughty = require("naughty")
local wibox = require("wibox")
Expand Down
Loading