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

Update json testdata to new schema #1135

Merged
merged 24 commits into from
Jan 1, 2023
Merged

Update json testdata to new schema #1135

merged 24 commits into from
Jan 1, 2023

Conversation

sidey79
Copy link
Contributor

@sidey79 sidey79 commented Dec 19, 2022

  • Please check if the PR fulfills these requirements
  • Tests for the changes have been added / modified (needed for for bug fixes / features)
  • commandref has been added / updated (needed for bug fixes / features)
  • What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
  • Bugfix (please link issue)
  • Feature enhancement
  • Documentation update
  • Unittest enhancement
  • other
  • What is the current behavior?
    (You can also link to an open issue here, if this describes the current behavior)

Test data is taken from another repository.
Since schema update in the other repository, the tests are not running as expected.

  • What is the new behavior (if this is a feature change)?

Test data is taken from this repository if testdata is available.
If there is no testdata avaailable, testdata is loaded from url if specified and module is installed.

  • Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

hopefully not

  • Other information:

@sidey79 sidey79 changed the title DRAFT: Master fix tests json Update json testdata to new schema Dec 19, 2022
@sidey79 sidey79 changed the title Update json testdata to new schema Update json testdata to new sceme Dec 19, 2022
@sidey79 sidey79 changed the title Update json testdata to new sceme Update json testdata to new schema Dec 19, 2022
@codecov
Copy link

codecov bot commented Dec 19, 2022

Codecov Report

Merging #1135 (2d9a139) into master (946f0df) will increase coverage by 1.20%.
The diff coverage is 83.83%.

@@            Coverage Diff             @@
##           master    #1135      +/-   ##
==========================================
+ Coverage   65.63%   66.83%   +1.20%     
==========================================
  Files         138      135       -3     
  Lines        9882     9824      -58     
  Branches     1572     1570       -2     
==========================================
+ Hits         6486     6566      +80     
+ Misses       2137     1966     -171     
- Partials     1259     1292      +33     
Flag Coverage Δ
fhem 56.31% <83.83%> (-1.60%) ⬇️
modules 66.83% <83.83%> (+1.20%) ⬆️
perl 90.46% <ø> (+0.12%) ⬆️
unittests 66.83% <83.83%> (+1.20%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
t/FHEM/10_FS10/09_ParseData.t 94.11% <ø> (ø)
t/FHEM/10_SD_GT/09_parseData.t 94.11% <0.00%> (ø)
t/FHEM/10_SD_Rojaflex/09_autocreate_devices.t 100.00% <ø> (ø)
t/FHEM/14_BresserTemeo/09_autocreate_devices.t 100.00% <ø> (ø)
t/FHEM/14_SD_UT/01_attr.t 100.00% <ø> (ø)
t/FHEM/14_SD_WS/09_autocreate_devices.t 100.00% <ø> (ø)
t/FHEM/14_SD_WS09/02_SD_WS09_WindDirAverage.t 100.00% <ø> (ø)
t/FHEM/10_SD_Rojaflex/09_parseData.t 94.11% <66.66%> (-4.30%) ⬇️
lib/Test2/SIGNALduino/RDmsg.pm 74.74% <71.42%> (-4.57%) ⬇️
t/FHEM/00_SIGNALduino/08_DeviceData_rmsg.t 79.26% <75.00%> (-2.22%) ⬇️
... and 33 more

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

updated code to new schema
locical modules:
 - 14_SD_WS07
 - 14_SD_WS09
 - 14_SD_AS
 - 14_BresserTemeo
 - 14_FLAMINGO
 - 14_SD_BELL
 - 14_SD_WS_Maverick
 - 41_OREGON
Updated to common revision for logical modules
Renamed (typo corrected)
08_DeviceDat_rmsg.t

small improvment
updated directory to search for testData
updated testdata
- 10_SD_GT
- 10_FS10
- 10_SDRojaflex
- 14_FLAMINGO
- 14_SD_UT
- 14_SD_BELL
- 14_BresserTemeo
- 14_SD_AS
- 14_SD_WS
- 14_SD_WS07
- 14_SD_WS09
- 14_SD_WS_Maverick
- 14_Hideki
- 41_OREGON
- 98_Dooya
@sidey79
Copy link
Contributor Author

sidey79 commented Dec 21, 2022

Bei mir steht, Du hättest 24 commits hochgeladen.
Sieht so aus wie diese, welche ich zusammengefasst hatte.
Kann das sein?

@HomeAutoUser
Copy link
Contributor

Ich habe eigentlich nur deinen aktuellen Stand in GitHub desktop holen wollen und da kam die Frage… wunderte mich auch schon und verglich da alles. Es sind alle deine letzten Stände. Ich weiß nicht wieso da „MergeBranch…“ kam. Wollte dir ggf helfen und die Dateien auf ein Schema zu bringen + zusätzlich hide von mir erstellen testData Files zur Verfügung stellen.

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 21, 2022

@HomeAutoUser

Wenn Du nichts verändert hast, dann würde ich den Branch überschreiben und die 24 commits löschen.
Mit github desktop arbeite ich nicht, aber vermutlich ist es einfacher wenn Du ihn lokal löschst und neu abholst, da ich die Historie zwischendurch aufgeräumt habe.

@HomeAutoUser
Copy link
Contributor

@sidey79 ja mach das.
Ich werde dann schauen wenn du ihn überschrieben hast.

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 21, 2022

@sidey79 ja mach das. Ich werde dann schauen wenn du ihn überschrieben hast.

erledigt :)

HomeAutoUser and others added 2 commits December 21, 2022 20:09
- standardization of the schema for better comparison -> no change of inputdata or testdata!
HomeAutoUser
HomeAutoUser previously approved these changes Dec 21, 2022
- standardization of the schema for better comparison -> no change of inputdata or testdata!
@sidey79
Copy link
Contributor Author

sidey79 commented Dec 21, 2022

Beim erzeugen der Testdaten habe ich festgestellt, dass wir für 14_BresserTemeo keine Daten haben und ich bin mir auch unsicher, ob wir das überhaupt noch benötigen.
So wie ich das einschätze, gegen die Daten mit W44 an SD_WS und mit P44 wird überhaupt nichts übergeben. Also vermutlich eine Modulleiche?

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 21, 2022

@HomeAutoUser

Die Tests sind ja nun zumindest mal durchgelaufen.
Offenbar, sind aber nicht alle mir rüber gekommen, was mich wundert. Z.B. fehlt der Datensatz zu "SD_WS_50_SM".

Ich hatte das mittels Script extrahiert. Das Sortiert aber etwas anders als Du es gemacht hast.
Vermutlich fehlen da noch mehr Daten.

@HomeAutoUser
Copy link
Contributor

Offenbar, sind aber nicht alle mir rüber gekommen, was mich wundert. Z.B. fehlt der Datensatz zu "SD_WS_50_SM".

Was möchtest du davon haben?
Im durchlaufenden JSON ... wenn du das noch machst, sind dsmg hinterlegt wo der dispatched getestet wird.

Wenn du nun den Datensatz 1:1 kopierst in deine "testData", so testen wir doppelt.
Es muss ein Test mit der Bezeichnung " ... Opus_XT300 ..." geben.

Vermutlich fehlen da noch mehr Daten.

Was soll fehlen bzw. was denkst du, was fehlt?

Info:
Deine Tests, durchlaufen das komplette JSON einmal durch, wo mehrere dmsg´s drin sind als bei deinen Tests. Wir testen so den normalen Dispatch mit den Readings. Alles andere wären Sondertests. Bitte nicht doppelt testen.

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 21, 2022

Ich wüsste jetzt nicht was doppelt getestet wird.
Aktuell wird hier weniger als im Haupt Branch getestet und der eine Datensatz war ein Beispiel.

Soll das Tool denn die testData.json schreiben können oder nicht? Wenn ich meinen Export überarbeite, gehen deine Anpassung halt wieder weg, daher wollte ich das jetzt nicht machen.

@elektron-bbs
Copy link
Contributor

Beim erzeugen der Testdaten habe ich festgestellt, dass wir für 14_BresserTemeo keine Daten haben und ich bin mir auch unsicher, ob wir das überhaupt noch benötigen. So wie ich das einschätze, gegen die Daten mit W44 an SD_WS und mit P44 wird überhaupt nichts übergeben. Also vermutlich eine Modulleiche?

Das sehe ich auch so.
Ich habe den Code in 14_SD_WS.pm und 14_BresserTemeo mal verglichen - sieht sich verdammt ähnlich. Das war wohl eines der ersten Protokolle, die ihr in die 14_SD_WS.pm überführt habt.

@HomeAutoUser
Copy link
Contributor

Ich wüsste jetzt nicht was doppelt getestet wird.
Aktuell wird hier weniger als im Haupt Branch getestet und der eine Datensatz war ein Beispiel.

Was ist für dich ein Hauptbranch und wie ist dein komplettes Konzept angedacht.

Soll das Tool denn die testData.json schreiben können oder nicht? Wenn ich meinen Export überarbeite, gehen deine
Anpassung halt wieder weg, daher wollte ich das jetzt nicht machen.

Von der Überlegung war ich abgekommen weil da zu viele Faktoren einspielen zum Vergleichen. Derzeit lasse ich auf Basis des TOOL´s und dessen SD_Device_ProtocolList.json Dateien für Tests generieren um dir Vorlagen zu bieten. Das man das besser vergleichen kann, hatte ich das Schema in den testData´s gleich gemacht.

Bleibt der Zustand https://github.com/RFD-FHEM/RFFHEM/blob/master_fix_tests_JSON/lib/Test2/SIGNALduino/RDmsg.pm#L17:L26 so? Leider kenne ich nicht den kompletten Umsetzungsgedanke nicht vollständig.

Beim erzeugen der Testdaten habe ich festgestellt, dass wir für 14_BresserTemeo keine Daten haben und ich bin mir auch unsicher, ob wir das überhaupt noch benötigen. So wie ich das einschätze, gegen die Daten mit W44 an SD_WS und mit P44 wird überhaupt nichts übergeben. Also vermutlich eine Modulleiche?

Dito.

- Comments revised for clarity
@sidey79 sidey79 force-pushed the master_fix_tests_JSON branch 2 times, most recently from 70aab12 to 0e2ca1a Compare December 22, 2022 22:47
added meta
pay attention to testdata specified in META
actions-user and others added 3 commits December 23, 2022 00:35
fix PERL WARNING: "my" variable $attr masks earlier declaration in same scope
@HomeAutoUser
Copy link
Contributor

Ich bin aber immer noch überzeugt, dass SD_Device_ProtocolList.json nicht nötig ist, wenn direkt mit den testData.json gearbeitet werden könnte :)

Das mag sein, WENN man nur die Daten deiner Module mit dem TOOL verarbeiten würde. Da aber auch darin Daten von Fremdmodulen sind, welche du nicht testest, so negiere ich deine Aussage :-P

Ich war mal so frei und habe eine leichte Warning gefixt grins. So minimiert man die Ausgaben im gesamt RAW Log hihi.

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 23, 2022

Ich bin aber immer noch überzeugt, dass SD_Device_ProtocolList.json nicht nötig ist, wenn direkt mit den testData.json gearbeitet werden könnte :)

Das mag sein, WENN man nur die Daten deiner Module mit dem TOOL verarbeiten würde. Da aber auch darin Daten von Fremdmodulen sind, welche du nicht testest, so negiere ich deine Aussage :-P

Ja da ist was dran. An die "anderen" Module habe ich nur kurz gedacht, aber auch da könne das Tool in einen Ordner t/FHEM//testData.json schreiben, nur das auffinden kann dann nicht über die Metadaten erfolgen, das geht dann nur über eine Suche im Dateisystem. (Für beides ist der code hinterlegt)

Ich war mal so frei und habe eine leichte Warning gefixt grins. So minimiert man die Ausgaben im gesamt RAW Log hihi.

Da gibt es noch einige aber jetzt wollte ich erst mal diesen Teil fertig abschließen.

actions-user and others added 4 commits December 27, 2022 23:19
- Load testdata from local
- fallback loading from remote if possible
@sidey79 sidey79 marked this pull request as ready for review December 29, 2022 23:44
@sidey79
Copy link
Contributor Author

sidey79 commented Dec 29, 2022

@HomeAutoUser

Ich würde es bei diesem Stand zunächst einmal belassen wollen.

@HomeAutoUser
Copy link
Contributor

@HomeAutoUser

Ich würde es bei diesem Stand zunächst einmal belassen wollen.

Geht in Ordnung.

@elektron-bbs
Copy link
Contributor

Mich würde interessieren, wann und wohin dann welche Testdaten sollen.

  1. Sehe ich das richtig, das für die Test bei Github die Daten aus dem SIGNALduino-Tool nicht mehr verwendet werden?
  2. Wenn Testdaten bei den Modulen sind, werden mir Fehler dann schon bei Änderungen im neuen Branch angezeigt oder auch wieder erst beim Pull-Request?

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 30, 2022

@elektron-bbs

Daten aus dem Signalduino Tool werden aktuell keine mehr direkt verwendet.

Verwendet wird vorzugsweise was lokal im Repository liegt.
Wenn es dort keine gibt, werden auch welche verwendet, welche in den Meta Daten verlinkt wurden. Das trifft aber auf die hier im Repo hinterlegten nicht zu, da diese lokal hinterlegt wurden.

Die Tests werden auch bei einem push in einen neuen Branch ausgeführt.
Die Anzeigemöglichkeiten beschränken sich dann allerdings auf das Log.

@elektron-bbs
Copy link
Contributor

Die Tests werden auch bei einem push in einen neuen Branch ausgeführt. Die Anzeigemöglichkeiten beschränken sich dann allerdings auf das Log.

Man wird aber hoffentlich darauf hingewiesen, das Fehler aufgetreten sind?

@sidey79
Copy link
Contributor Author

sidey79 commented Dec 30, 2022

Die Tests werden auch bei einem push in einen neuen Branch ausgeführt. Die Anzeigemöglichkeiten beschränken sich dann allerdings auf das Log.

Man wird aber hoffentlich darauf hingewiesen, das Fehler aufgetreten sind?

Ja der Fehlerbericht kommt per E-Mail.
War aber auch vor diesem PR schon so.

@sidey79 sidey79 merged commit 0cbecba into master Jan 1, 2023
@sidey79 sidey79 deleted the master_fix_tests_JSON branch January 1, 2023 17:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants