Browse Source
* added support for %s to use unix timestamp in filenames * fix lint errors * add tests * update documentation --------- Co-authored-by: aler9 <46489434+aler9@users.noreply.github.com>pull/2776/head
4 changed files with 66 additions and 3 deletions
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
package record |
||||
|
||||
import ( |
||||
"strings" |
||||
"testing" |
||||
"time" |
||||
|
||||
"github.com/stretchr/testify/require" |
||||
) |
||||
|
||||
var recordPathCases = []struct { |
||||
name string |
||||
format string |
||||
dec *recordPathParams |
||||
enc string |
||||
}{ |
||||
{ |
||||
"standard", |
||||
"%path/%Y-%m-%d_%H-%M-%S-%f.mp4", |
||||
&recordPathParams{ |
||||
path: "mypath", |
||||
time: time.Date(2008, 11, 0o7, 11, 22, 4, 123456000, time.Local), |
||||
}, |
||||
"mypath/2008-11-07_11-22-04-123456.mp4", |
||||
}, |
||||
{ |
||||
"unix seconds", |
||||
"%path/%s.mp4", |
||||
&recordPathParams{ |
||||
path: "mypath", |
||||
time: time.Date(2021, 12, 2, 12, 15, 23, 0, time.UTC).Local(), |
||||
}, |
||||
"mypath/1638447323.mp4", |
||||
}, |
||||
} |
||||
|
||||
func TestRecordPathDecode(t *testing.T) { |
||||
for _, ca := range recordPathCases { |
||||
t.Run(ca.name, func(t *testing.T) { |
||||
require.Equal(t, ca.dec, decodeRecordPath(ca.format, ca.enc)) |
||||
}) |
||||
} |
||||
} |
||||
|
||||
func TestRecordPathEncode(t *testing.T) { |
||||
for _, ca := range recordPathCases { |
||||
t.Run(ca.name, func(t *testing.T) { |
||||
require.Equal(t, ca.enc, strings.ReplaceAll(encodeRecordPath(ca.dec, ca.format), "%path", "mypath")) |
||||
}) |
||||
} |
||||
} |
Loading…
Reference in new issue