mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-11-28 09:24:24 +01:00
Enhanced rake task to create fixtures for test cases
This commit is contained in:
parent
14b0b2ac30
commit
19fb816d36
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
- Display an asterisk on the phone input field, in the admin creation form, if the phone is configured as required
|
- Display an asterisk on the phone input field, in the admin creation form, if the phone is configured as required
|
||||||
- Keep the history of footprints data for verification purposes
|
- Keep the history of footprints data for verification purposes
|
||||||
|
- Enhanced rake task to create fixtures for test cases
|
||||||
- Fix a bug: unable to export reservations
|
- Fix a bug: unable to export reservations
|
||||||
- Fix a bug: unable to receive mails in development
|
- Fix a bug: unable to receive mails in development
|
||||||
- [TODO DEPLOY] `rails fablab:maintenance:save_footprint_data`
|
- [TODO DEPLOY] `rails fablab:maintenance:save_footprint_data`
|
||||||
|
@ -39,7 +39,7 @@ class FootprintService
|
|||||||
columns = FootprintService.footprint_columns(klass)
|
columns = FootprintService.footprint_columns(klass)
|
||||||
current = FootprintService.footprint_data(klass, item)
|
current = FootprintService.footprint_data(klass, item)
|
||||||
saved = FootprintDebug.find_by(footprint: item.footprint, klass: klass)
|
saved = FootprintDebug.find_by(footprint: item.footprint, klass: klass)
|
||||||
puts "Debug footprint for Invoice [ id: #{item.id} ]"
|
puts "Debug footprint for #{klass} [ id: #{item.id} ]"
|
||||||
puts '-----------------------------------------'
|
puts '-----------------------------------------'
|
||||||
puts "columns: [ #{columns.join(', ')} ]"
|
puts "columns: [ #{columns.join(', ')} ]"
|
||||||
puts "current footprint: #{current}"
|
puts "current footprint: #{current}"
|
||||||
|
@ -108,8 +108,8 @@ SET default_tablespace = '';
|
|||||||
|
|
||||||
CREATE TABLE public.abuses (
|
CREATE TABLE public.abuses (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
signaled_type character varying,
|
|
||||||
signaled_id integer,
|
signaled_id integer,
|
||||||
|
signaled_type character varying,
|
||||||
first_name character varying,
|
first_name character varying,
|
||||||
last_name character varying,
|
last_name character varying,
|
||||||
email character varying,
|
email character varying,
|
||||||
@ -187,8 +187,8 @@ CREATE TABLE public.addresses (
|
|||||||
locality character varying,
|
locality character varying,
|
||||||
country character varying,
|
country character varying,
|
||||||
postal_code character varying,
|
postal_code character varying,
|
||||||
placeable_type character varying,
|
|
||||||
placeable_id integer,
|
placeable_id integer,
|
||||||
|
placeable_type character varying,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
updated_at timestamp without time zone
|
updated_at timestamp without time zone
|
||||||
);
|
);
|
||||||
@ -263,8 +263,8 @@ CREATE TABLE public.ar_internal_metadata (
|
|||||||
|
|
||||||
CREATE TABLE public.assets (
|
CREATE TABLE public.assets (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
viewable_type character varying,
|
|
||||||
viewable_id integer,
|
viewable_id integer,
|
||||||
|
viewable_type character varying,
|
||||||
attachment character varying,
|
attachment character varying,
|
||||||
type character varying,
|
type character varying,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
@ -504,8 +504,8 @@ ALTER SEQUENCE public.coupons_id_seq OWNED BY public.coupons.id;
|
|||||||
|
|
||||||
CREATE TABLE public.credits (
|
CREATE TABLE public.credits (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
creditable_type character varying,
|
|
||||||
creditable_id integer,
|
creditable_id integer,
|
||||||
|
creditable_type character varying,
|
||||||
plan_id integer,
|
plan_id integer,
|
||||||
hours integer,
|
hours integer,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
@ -1046,8 +1046,8 @@ ALTER SEQUENCE public.invoice_items_id_seq OWNED BY public.invoice_items.id;
|
|||||||
|
|
||||||
CREATE TABLE public.invoices (
|
CREATE TABLE public.invoices (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
invoiced_type character varying,
|
|
||||||
invoiced_id integer,
|
invoiced_id integer,
|
||||||
|
invoiced_type character varying,
|
||||||
stp_invoice_id character varying,
|
stp_invoice_id character varying,
|
||||||
total integer,
|
total integer,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
@ -1226,15 +1226,15 @@ ALTER SEQUENCE public.machines_id_seq OWNED BY public.machines.id;
|
|||||||
CREATE TABLE public.notifications (
|
CREATE TABLE public.notifications (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
receiver_id integer,
|
receiver_id integer,
|
||||||
attached_object_type character varying,
|
|
||||||
attached_object_id integer,
|
attached_object_id integer,
|
||||||
|
attached_object_type character varying,
|
||||||
notification_type_id integer,
|
notification_type_id integer,
|
||||||
is_read boolean DEFAULT false,
|
is_read boolean DEFAULT false,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
updated_at timestamp without time zone,
|
updated_at timestamp without time zone,
|
||||||
receiver_type character varying,
|
receiver_type character varying,
|
||||||
is_send boolean DEFAULT false,
|
is_send boolean DEFAULT false,
|
||||||
meta_data jsonb DEFAULT '"{}"'::jsonb
|
meta_data jsonb DEFAULT '{}'::jsonb
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -1575,8 +1575,8 @@ CREATE TABLE public.prices (
|
|||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
group_id integer,
|
group_id integer,
|
||||||
plan_id integer,
|
plan_id integer,
|
||||||
priceable_type character varying,
|
|
||||||
priceable_id integer,
|
priceable_id integer,
|
||||||
|
priceable_type character varying,
|
||||||
amount integer,
|
amount integer,
|
||||||
created_at timestamp without time zone NOT NULL,
|
created_at timestamp without time zone NOT NULL,
|
||||||
updated_at timestamp without time zone NOT NULL
|
updated_at timestamp without time zone NOT NULL
|
||||||
@ -1891,8 +1891,8 @@ CREATE TABLE public.reservations (
|
|||||||
message text,
|
message text,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
updated_at timestamp without time zone,
|
updated_at timestamp without time zone,
|
||||||
reservable_type character varying,
|
|
||||||
reservable_id integer,
|
reservable_id integer,
|
||||||
|
reservable_type character varying,
|
||||||
nb_reserve_places integer,
|
nb_reserve_places integer,
|
||||||
statistic_profile_id integer
|
statistic_profile_id integer
|
||||||
);
|
);
|
||||||
@ -1924,8 +1924,8 @@ ALTER SEQUENCE public.reservations_id_seq OWNED BY public.reservations.id;
|
|||||||
CREATE TABLE public.roles (
|
CREATE TABLE public.roles (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
name character varying,
|
name character varying,
|
||||||
resource_type character varying,
|
|
||||||
resource_id integer,
|
resource_id integer,
|
||||||
|
resource_type character varying,
|
||||||
created_at timestamp without time zone,
|
created_at timestamp without time zone,
|
||||||
updated_at timestamp without time zone
|
updated_at timestamp without time zone
|
||||||
);
|
);
|
||||||
@ -2859,8 +2859,8 @@ CREATE TABLE public.users_roles (
|
|||||||
CREATE TABLE public.wallet_transactions (
|
CREATE TABLE public.wallet_transactions (
|
||||||
id integer NOT NULL,
|
id integer NOT NULL,
|
||||||
wallet_id integer,
|
wallet_id integer,
|
||||||
transactable_type character varying,
|
|
||||||
transactable_id integer,
|
transactable_id integer,
|
||||||
|
transactable_type character varying,
|
||||||
transaction_type character varying,
|
transaction_type character varying,
|
||||||
amount integer,
|
amount integer,
|
||||||
created_at timestamp without time zone NOT NULL,
|
created_at timestamp without time zone NOT NULL,
|
||||||
@ -3919,14 +3919,6 @@ ALTER TABLE ONLY public.roles
|
|||||||
ADD CONSTRAINT roles_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT roles_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: schema_migrations schema_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
ALTER TABLE ONLY public.schema_migrations
|
|
||||||
ADD CONSTRAINT schema_migrations_pkey PRIMARY KEY (version);
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
-- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -4942,6 +4934,29 @@ CREATE INDEX profiles_lower_unaccent_last_name_trgm_idx ON public.profiles USING
|
|||||||
CREATE INDEX projects_search_vector_idx ON public.projects USING gin (search_vector);
|
CREATE INDEX projects_search_vector_idx ON public.projects USING gin (search_vector);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: unique_schema_migrations; Type: INDEX; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX unique_schema_migrations ON public.schema_migrations USING btree (version);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: accounting_periods accounting_periods_del_protect; Type: RULE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE RULE accounting_periods_del_protect AS
|
||||||
|
ON DELETE TO public.accounting_periods DO INSTEAD NOTHING;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: accounting_periods accounting_periods_upd_protect; Type: RULE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE RULE accounting_periods_upd_protect AS
|
||||||
|
ON UPDATE TO public.accounting_periods DO INSTEAD NOTHING;
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: projects projects_search_content_trigger; Type: TRIGGER; Schema: public; Owner: -
|
-- Name: projects projects_search_content_trigger; Type: TRIGGER; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -5428,6 +5443,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20140605125131'),
|
('20140605125131'),
|
||||||
('20140605142133'),
|
('20140605142133'),
|
||||||
('20140605151442'),
|
('20140605151442'),
|
||||||
|
('20140606133116'),
|
||||||
('20140609092700'),
|
('20140609092700'),
|
||||||
('20140609092827'),
|
('20140609092827'),
|
||||||
('20140610153123'),
|
('20140610153123'),
|
||||||
@ -5496,12 +5512,14 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20150507075620'),
|
('20150507075620'),
|
||||||
('20150512123546'),
|
('20150512123546'),
|
||||||
('20150520132030'),
|
('20150520132030'),
|
||||||
|
('20150520133409'),
|
||||||
('20150526130729'),
|
('20150526130729'),
|
||||||
('20150527153312'),
|
('20150527153312'),
|
||||||
('20150529113555'),
|
('20150529113555'),
|
||||||
('20150601125944'),
|
('20150601125944'),
|
||||||
('20150603104502'),
|
('20150603104502'),
|
||||||
('20150603104658'),
|
('20150603104658'),
|
||||||
|
('20150603133050'),
|
||||||
('20150604081757'),
|
('20150604081757'),
|
||||||
('20150604131525'),
|
('20150604131525'),
|
||||||
('20150608142234'),
|
('20150608142234'),
|
||||||
@ -5583,6 +5601,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20160905142700'),
|
('20160905142700'),
|
||||||
('20160906094739'),
|
('20160906094739'),
|
||||||
('20160906094847'),
|
('20160906094847'),
|
||||||
|
('20160906145713'),
|
||||||
('20160915105234'),
|
('20160915105234'),
|
||||||
('20161123104604'),
|
('20161123104604'),
|
||||||
('20170109085345'),
|
('20170109085345'),
|
||||||
|
@ -2,16 +2,17 @@
|
|||||||
|
|
||||||
namespace :db do
|
namespace :db do
|
||||||
desc 'Convert development DB to Rails test fixtures'
|
desc 'Convert development DB to Rails test fixtures'
|
||||||
task to_fixtures: :environment do
|
task :to_fixtures, [:table] => :environment do |_task, args|
|
||||||
TABLES_TO_SKIP = %w[ar_internal_metadata delayed_jobs schema_info schema_migrations].freeze
|
TABLES_TO_SKIP = %w[ar_internal_metadata delayed_jobs schema_info schema_migrations].freeze
|
||||||
|
|
||||||
begin
|
begin
|
||||||
ActiveRecord::Base.establish_connection
|
ActiveRecord::Base.establish_connection
|
||||||
ActiveRecord::Base.connection.tables.each do |table_name|
|
ActiveRecord::Base.connection.tables.each do |table_name|
|
||||||
next if TABLES_TO_SKIP.include?(table_name)
|
next if TABLES_TO_SKIP.include?(table_name)
|
||||||
|
next if args.table && args.table != table_name
|
||||||
|
|
||||||
conter = '000'
|
conter = '000'
|
||||||
file_path = "#{Rails.root}/test/fixtures/#{table_name}.yml"
|
file_path = "#{Rails.root}/test/fixtures/test/#{table_name}.yml"
|
||||||
File.open(file_path, 'w') do |file|
|
File.open(file_path, 'w') do |file|
|
||||||
rows = ActiveRecord::Base.connection.select_all("SELECT * FROM #{table_name}")
|
rows = ActiveRecord::Base.connection.select_all("SELECT * FROM #{table_name}")
|
||||||
data = rows.each_with_object({}) do |record, hash|
|
data = rows.each_with_object({}) do |record, hash|
|
||||||
|
@ -35,15 +35,6 @@ namespace :fablab do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc 'generate fixtures from db'
|
|
||||||
task generate_fixtures: :environment do
|
|
||||||
Rails.application.eager_load!
|
|
||||||
ActiveRecord::Base.descendants.reject { |c| [ActiveRecord::SchemaMigration, PartnerPlan].include? c }.each do |ar_base|
|
|
||||||
p "========== #{ar_base} =============="
|
|
||||||
ar_base.dump_fixtures
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
desc 'generate current code checksum'
|
desc 'generate current code checksum'
|
||||||
task checksum: :environment do
|
task checksum: :environment do
|
||||||
require 'checksum'
|
require 'checksum'
|
||||||
|
10
test/fixtures/README.md
vendored
Normal file
10
test/fixtures/README.md
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Test fixtures
|
||||||
|
|
||||||
|
Fixtures are test data.
|
||||||
|
Every time a new test is run, the database is filled with these data.
|
||||||
|
|
||||||
|
You can create fixtures manually or using the following task, to dump your current table/database to the YAML fixture files:
|
||||||
|
```bash
|
||||||
|
rails db:to_fixtures[table]
|
||||||
|
```
|
||||||
|
The parameter `table` is optional. If not specified, the whole database will be dumped.
|
Loading…
Reference in New Issue
Block a user